NumPy中的集合运算

怎样快速找出两个数组中相同的元素?

1
2
numpy.isin(element,test_elements,assume_unique = False,invert = False )
计算test_elements中的元素,仅在元素上广播。返回与元素相同形状的布尔数组,该元素为True,其中元素元素位于test_elements中,否则返回 False。

NumPy数组的集合运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
# 创建一维 ndarray x
x = np.array([1,2,3,4,5])
# 创建一维 ndarray y
y = np.array([6,5,4,8,7])
# 输出 x
print('x = ', x)
# 输出 y
print('y = ', y)
# 比较x和y
print('使用intersect1d输出x和y的交集:', np.intersect1d(x,y))
print('使用setdiff1d输出在x中不在y中的元素:', np.setdiff1d(x,y))
print('使用union1d输出x和y的并集:',np.union1d(x,y))
print('使用setxor1d输出x和y的异或集:',np.setxor1d(x,y))

输出:

1
2
3
4
5
6
x =  [1 2 3 4 5]
y = [6 5 4 8 7]
使用intersect1d输出x和y的交集: [4 5]
使用setdiff1d输出在x中不在y中的元素: [1 2 3]
使用union1d输出x和y的并集: [1 2 3 4 5 6 7 8]
使用setxor1d输出x和y的异或集: [1 2 3 6 7 8]