numpy.setxor1d
numpy.setxor1d(ar1, ar2, assume_unique=False) [source]
查找两个数组的集合异或。
返回仅在一个(不是两个)输入数组中排序的唯一值。
参数 : | ar1, ar2 :array_like 输入数组。 assume_unique : 如果为True,则假定输入数组都是唯一的, 这可以加快计算速度。 默认值为False。 |
返回值 : | setx或1d :ndarray 只存在于一个输入数组中的唯一值的一维排序数组。 |
例子
1)基础用法
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([3, 4, 5, 6])
result = np.setxor1d(a, b)
print(result)
2)使用 assume_unique=True
当 assume_unique=True
时,numpy.setxor1d()
会跳过内部的去重检查,直接计算对称差集,从而提高性能。适用于已经确认两个输入数组中元素唯一的情况,否则结果可能不正确。
import numpy as np
a = np.array([1, 2, 2, 3])
b = np.array([3, 4])
# 正常使用,自动去重
print(np.setxor1d(a, b))
# 输出: [1 2 4]
# 假设唯一(但实际上a中有重复)
print(np.setxor1d(a, b, assume_unique=True))
# 可能输出错误: [1 2 2 4]