Numpy setxor1d() 函数
Numpy setxor1d() 函数计算两个数组之间的对称差。它返回一个排序后的数组,该数组包含唯一元素,这些元素在两个输入数组中均存在,但两个输入数组中均不存在。此函数可用于在比较两个数组时识别出一个数组中独有的元素。
通常,setxor1d() 函数类似于集合论中的对称差分运算,其中 A 表示集合 A 或集合 B 中的元素,但不在它们的交集中。
语法
以下是 Numpy setxor1d() 函数的语法 -
numpy.setxor1d(ar1, ar2, assume_unique=False)
参数
以下是 Numpy setxor1d() 函数的参数−
- ar1:第一个输入数组。
- ar2:第二个输入数组。
- assume_unique(可选):如果为 True,则假定输入数组是唯一的,这可以加快计算速度。默认值为 False。
返回类型
此函数返回一个已排序的一维数组,其中包含在一个输入数组中存在但不在另一个输入数组中存在的唯一元素。
示例
以下是使用 Numpy setxor1d() 函数查找两个数组之间对称差异的基本示例 -
import numpy as np array1 = np.array([10, 20, 30, 40, 50]) array2 = np.array([30, 40, 70]) result = np.setxor1d(array1, array2) print("对称差异:", result)
输出
以下是上述代码的输出 -
对称差分:[10 20 50 70]
示例:assume_unique 参数的用法
当 assume_unique 设置为 True 时,函数会跳过内部唯一性检查,从而在已知数组包含唯一元素时提高性能 -
import numpy as np array1 = np.array([10, 20, 20, 40, 50]) array2 = np.array([20, 30, 70]) result = np.setxor1d(array1, array2, assume_unique=True) print("假设唯一值 (assume_unique=True) 的对称差分:", result)
输出
以下是上述代码的输出 -
假设唯一值 (assume_unique) 的对称差分: [10 30 40 50 70]
示例:字符串数组作为参数
setxor1d() 函数也可以用于字符串数组。在以下示例中,我们找到了 array1 或 array2 中独有的元素 -
import numpy as np array1 = np.array(["apple", "banana", "cherry"]) array2 = np.array(["banana", "grape"]) result = np.setxor1d(array1, array2) print("对称差集:", result)
输出
以下是上述代码的输出 -
对称差集:['apple' 'cherry' 'grape']