求两个 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)
输出: