- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 创建和操作数组
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 迭代数组
- NumPy - 数组重塑
- NumPy - 连接数组
- NumPy - 堆叠数组
- NumPy - 分割数组
- NumPy - 展平数组
- NumPy - 转置数组
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组操作
- NumPy - 交换数组的轴
- NumPy - 字节交换
- NumPy - 副本和视图
- NumPy - 元素级数组比较
- NumPy - 过滤数组
- NumPy - 连接数组
- NumPy - 排序、搜索和计数函数
- NumPy - 搜索数组
- NumPy - 数组的并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 将值追加到数组
- NumPy - 交换数组的列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 填充缺失数据
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行向量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 数组的并集
NumPy 中的数组并集
NumPy 中的数组并集是指将多个数组合并成一个数组,同时去除重复元素。这确保每个元素在数组中只出现一次。在 NumPy 中,我们可以使用union1d()函数来实现这一点。
NumPy 中的数组并集类似于集合论中的并集运算,其中来自多个集合的所有唯一元素都被组合成一个集合。
使用 union1d() 函数
NumPy 中的 np.union1d() 函数用于计算两个数组的并集。此函数返回一个排序后的唯一值数组,这些值存在于任一输入数组中。以下是语法 -
numpy.union1d(arr1, arr2)
其中,
- arr1 -它是第一个输入数组。此数组可以是任何形状或数据类型,但通常为简单起见为 1D 数组。
- arr2 -它是第二个输入数组。它应该与“arr1”具有相同的数据类型。
示例
在以下示例中,我们使用 union1d() 函数查找 2 个数组“arr1”和“arr2”的并集 -
import numpy as np # Define two arrays arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([3, 4, 5, 6]) # Compute the union of the two arrays union_result = np.union1d(arr1, arr2) print("Union of two arrays:", union_result)
获得以下输出 -
Union of two arrays: [1 2 3 4 5 6]
多个数组的并集
要查找两个以上数组的并集,您可以多次使用 union1d() 函数。这涉及迭代地将函数应用于数组对,直到所有数组都包含在并集中。
或者,您可以使用 np.concatenate() 和 np.unique() 等函数。以下是语法 -
numpy.concatenate((array1, array2, ...)) numpy.unique(array)
示例:顺序并集
在下面的示例中,我们使用 union1d() 函数迭代地查找 3 个数组的并集 -
import numpy as np # Define multiple 1D arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) arr3 = np.array([4, 5, 6]) # Compute the union of three arrays # Union of first two arrays union_temp = np.union1d(arr1, arr2) # Union with the third array union_result = np.union1d(union_temp, arr3) print("Union of multiple arrays (sequential):", union_result)
这将产生以下结果 -
Union of multiple arrays (sequential): [1 2 3 4 5 6]
示例:使用 np.concatenate() 和 np.unique() 函数
在此示例中,我们首先将所有数组连接到一个数组中。然后,我们使用 unique() 函数从该连接数组中提取唯一元素 -
import numpy as np # Define multiple 1D arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) arr3 = np.array([4, 5, 6]) # Concatenate all arrays into one concatenated_array = np.concatenate((arr1, arr2, arr3)) # Find unique elements union_result = np.unique(concatenated_array) print("Union of multiple arrays (concatenate and unique):", union_result)
以上代码的输出如下 -
Union of multiple arrays (concatenate and unique): [1 2 3 4 5 6]
处理多维数组
我们还可以对多维数组应用并集运算。要对多维数组执行并集运算,您需要先展平数组。
展平将多维数组转换为 1D 数组,允许您执行并集运算,就像数组是一维的一样。在执行并集运算后,如果需要,您可以将结果重新整形回原始维度。
在 NumPy 中,多维数组是具有多个维度的数组。它们通常被称为“ndarrays”,用于表示复杂的数据结构,如矩阵或更高维度的张量。
管理这些数组涉及理解它们的结构、执行操作以及有效地操作数据。
示例
在此示例中,我们首先定义两个 2D 数组“arr1”和“arr2”。然后,我们使用 flatten() 函数将其展平为 1d 数组,然后计算它们的并集 -
import numpy as np # Define 2D arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[3, 4], [5, 6]]) # Flatten the arrays and compute the union flattened_arr1 = arr1.flatten() flattened_arr2 = arr2.flatten() union_result = np.union1d(flattened_arr1, flattened_arr2) print("Union of 2D arrays:", union_result)
获得的输出如下所示 -
Union of 2D arrays: [1 2 3 4 5 6]
具有复杂数据类型的并集
NumPy 中具有复杂数据类型的并集运算涉及处理具有结构化或面向对象数据的数组。与简单的数字数组不同,复杂的数据类型可以包含诸如整数、浮点数、字符串,甚至其他数组之类的字段。
np.union1d() 函数可以处理任何数据类型的数组,只要它们是可以比较的。
示例
在以下示例中,我们首先创建 2 个结构化数组,然后使用 union1d() 函数将它们组合起来,删除重复项并保留唯一条目 -
import numpy as np # Define structured arrays arr1 = np.array([(1, 'a'), (2, 'b')], dtype=[('num', 'i4'), ('letter', 'S1')]) arr2 = np.array([(2, 'b'), (3, 'c')], dtype=[('num', 'i4'), ('letter', 'S1')]) # Compute the union of structured arrays union_result = np.union1d(arr1, arr2) print("Union of structured arrays:", union_result)
执行上述代码后,我们得到以下输出 -
Union of structured arrays: [(1, b'a') (2, b'b') (3, b'c')]