Numpy setdiff1d() 函数
Numpy setdiff1d() 函数用于求两个数组的集合差。它返回一个排序后的数组,其中包含第一个数组中存在但不存在于第二个数组中的唯一元素。此函数可用于在比较两个数组时识别其中一个数组中唯一的元素。
通常,setdiff1d() 函数类似于集合论中的集合差运算,其中 A - B 表示存在于集合 A 中但不存在于集合 B 中的元素。此操作可确保结果仅包含第一个输入数组中唯一且第二个输入数组中不存在的元素。
语法
以下是 Numpy setdiff1d() 函数的语法 -
numpy.setdiff1d(ar1, ar2, assume_unique=False)
参数
以下是 Numpy setdiff1d() 函数的参数 -
- ar1:第一个输入数组。
- ar2:第二个输入数组。
- assume_unique(可选):如果确实,输入数组被假定是唯一的,这可以加快计算速度。默认值为 False。
返回类型
此函数返回一个已排序的一维数组,其中包含第一个数组中唯一且不存在于第二个数组中的元素。
示例
以下是使用 Numpy setdiff1d() 函数查找两个数组之间集合差异的基本示例 -
import numpy as np array1 = np.array([10, 20, 30, 40, 50]) array2 = np.array([30, 40, 70]) result = np.setdiff1d(array1, array2) print("集合差异:", result)
输出
以下是上述代码的输出 -
集合差异:[10 20 50]
示例:assume_unique 参数的用法
当 assume_unique 设置为 True 时,函数会跳过内部唯一性检查,从而在已知数组包含唯一元素时提高性能 -
import numpy as np array1 = np.array([10, 20, 20, 40, 50]) array2 = np.array([20, 40, 70]) result = np.setdiff1d(array1, array2, assume_unique=True) print("Set Difference with assume_unique=True:", result)
输出
以下是上述代码的输出 -
Set Difference with assume_unique=True: [10 50]
示例:使用字符串
setdiff1d() 函数也可以用于字符串数组。在以下示例中,我们找到了 array1 与 array2 进行比较时特有的元素 -
import numpy as np array1 = np.array(["apple", "banana", "cherry"]) array2 = np.array(["banana", "grape"]) result = np.setdiff1d(array1, array2) print("Set Difference:", result)
输出
以下是上述代码的输出 -
Set Difference: ['apple' 'cherry']
示例:多维数组
当对多维数组使用 setdiff1d() 函数时,首先要展平输入数组,然后再计算集合差。输出仍然是一个包含唯一元素的一维数组 -
import numpy as np array1 = np.array([[1, 2], [3, 4]]) array2 = np.array([[3, 4], [5, 6]]) result = np.setdiff1d(array1, array2) print("Set Difference:", result)
输出
以下是上述代码的输出 -
Set Difference: [1 2]