查找两个NumPy数组的并集
为了找到两个一维数组的联合,我们可以使用Python Numpy库的函数numpy.union1d()。它返回唯一的、经过排序的数组,其值在两个输入数组中的任何一个。
语法:
numpy.union1d(array1, array2)
注意在输入中给出的数组如果不是一维的,就会被压扁。让我们看看如何找到两个数组的联合的例子。
示例 1:
# import libraries
import numpy as np
arr1 = np.array([10, 20, 30, 40])
print("array1 ", arr1)
arr2 = np.array([20, 40, 60, 80])
print("array2 ", arr2)
# print union of the two arrays
print("Union of two arrays :", np.union1d(arr1, arr2))
输出:
示例 2:
让我们看看寻找二维数组和一维数组的联合的例子。正如前面所讨论的,如果作为参数传递给函数numpy.union1d的数组是二维的,那么它们会被压扁为一维的。
# import libraries
import numpy as np
# 2-d array
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print("array1 ")
print(arr1)
arr2 = np.array([0, 5, 10])
print("array2 ", arr2)
# print union of 2-d array and 1-d array
print("Union of two arrays", np.union1d(arr1, arr2))
输出:
示例3:
如果我们想找到两个以上数组的并集,那么我们可以通过使用functools.reduce函数来找到。
# code to find union of more than two arrays
# import libraries
import numpy as np
from functools import reduce
array = reduce(np.union1d, ([1, 2, 3], [1, 3, 5],
[2, 4, 6], [0, 0, 0]))
print("Union ", array)
输出: