NumPy - 集合运算 ufunc
集合运算通用函数 (ufunc)
NumPy 提供了几个通用函数 (ufunc),用于对数组执行集合运算。这些运算用于比较和操作数组中的元素集合。主要的集合运算包括并集、交集、差集和异或。
NumPy 并集函数
numpy.union1d() 函数用于求两个数组的并集。两个集合的并集包含两个集合中所有元素,且不包含重复元素。
示例
以下示例中,我们使用 numpy.union1d() 函数求两个数组的并集 -
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([3, 4, 5]) # 求数组的并集 union_result = np.union1d(array1, array2) print("数组并集:", union_result)
输出结果如下 -
数组并集:[1 2 3 4 5]
NumPy 交函数
numpy.intersect1d() 函数用于求两个数组的交集。两个集合的交集是仅包含两个集合中都存在的元素的集合。
示例
在下面的示例中,我们使用 numpy.intersect1d() 函数来求两个数组的交集 -
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([3, 4, 5]) # 求数组的交集 intersection_result = np.intersect1d(array1, array2) print("数组交集:", intersection_result)
输出结果如下 -
数组交集: [3]
NumPy 集合差函数
numpy.setdiff1d() 函数用于求两个数组的集合差。两个集合的集合差是一个包含第一个集合中存在但不在第二个集合中的元素的集合。
示例
在本例中,我们使用 numpy.setdiff1d() 函数来计算两个数组之间的差值 −
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([3, 4, 5]) # 计算两个数组的集合差值 difference_result = np.setdiff1d(array1, array2) print("数组差值:", Difference_result)
我们得到以下结果 −
数组差值:[1 2]
NumPy 集合异或函数
numpy.setxor1d() 函数用于求两个数组的集合异或(对称差集)。两个集合的异或是指元素存在于其中一个集合中,但不同时存在于两个集合中的集合。
示例
在此示例中,我们使用 numpy.setxor1d() 函数求两个数组的异或 -
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([3, 4, 5]) # 求两个数组的异或集 xor_result = np.setxor1d(array1, array2) print("数组的异或集:", xor_result)
输出结果如下:-
数组的异或集:[1 2 4 5]
NumPy in1d() 函数
numpy.in1d() 函数用于测试一个数组中的每个元素是否也存在于另一个数组中。它返回一个与第一个数组形状相同的布尔数组,指示每个元素是否存在于第二个数组中。
示例
在下面的示例中,我们使用 numpy.in1d() 函数来测试一个数组的元素是否存在于另一个数组中 -
import numpy as np # 定义两个数组 array1 = np.array([1, 2, 3]) array2 = np.array([3, 4, 5]) # 测试 array1 的元素是否在 array2 中 in1d_result = np.in1d(array1, array2) print("数组 1 中的元素在数组 2 中:", in1d_result)
得到的输出如下 -
数组 1 中的元素在数组 2 中:[False False True]
NumPy isin() 函数
numpy.isin() 函数测试数组中的每个元素是否存在于值列表或另一个数组中。它类似于 numpy.in1d() 函数,但可用于多维数组。
示例
在此示例中,我们使用 numpy.isin() 函数来测试一个数组的元素是否存在于另一个数组中 -
import numpy as np # 定义一个数组和一个值列表 array = np.array([1, 2, 3, 4]) values = [2, 4, 6] # 测试数组元素是否在值列表中 isin_result = np.isin(array, values) print("Elements of array in values:", isin_result)
生成的结果如下 -
数组元素的值:[False True False True]