寻找两个NumPy数组之间的共同值
在这篇文章中,我们将讨论如何找出两个数组之间的共同值。为了找到共同值,我们可以使用numpy.intersect1d(),它将进行交叉操作,并按排序顺序返回两个数组之间的共同值。
语法:numpy.intersect1d(arr1, arr2, assume_unique = False, return_indices = False)
参数 :
arr1, arr2 : [array_like] 输入数组。
assume_unique : [bool] 如果为真,则假设输入数组都是唯一的,这可以加快计算速度。默认为假。
return_indices : [bool] 如果为真,则返回两个数组的交点所对应的索引。如果有多个值,则使用该值的第一个实例。默认为假。
返回: [ndarray] 经过排序的一维数组,其中有共同和独特的元素。
实例#1:寻找1d数组之间的共同值
import numpy as np
# create 2 arrays
a = np.array([2, 4, 7, 1, 4])
b = np.array([7, 2, 9, 0, 5])
# Display the arrays
print("Original arrays", a, ' ', b)
# use the np.intersect1d method
c = np.intersect1d(a, b)
# Display result
print("Common values", c)
输出:
Original arrays [2 4 7 1 4] [7 2 9 0 5]
Common values [2 7]
例子2:寻找n维数组之间的共同值
import numpy as np
# create 2 arrays
a = np.array([2,4,7,1,4,9]).reshape(3,2)
b = np.array([7,2,9,0,5,3]).reshape(2,3)
# Display the arrays
print("Original arrays")
print(a)
print(b)
# use the np.intersect1d method
c = np.intersect1d(a,b)
# Display result
print("Common values",c)
输出:
Original arrays
[[2 4]
[7 1]
[4 9]]
[[7 2 9]
[0 5 3]]
Common values [2 7 9]
注意:无论传递什么维度的数组,都会以1种扁平化的方式返回共同的值