寻找两个NumPy数组之间的共同值

  • Post category:Python

要寻找两个NumPy数组之间的共同值,需要使用NumPy中的intersect1d()函数。以下是该函数的使用方法:

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([3, 4, 5, 6, 7])

common_arr = np.intersect1d(arr1, arr2)

print(common_arr)

在上面的代码中,我们首先导入了NumPy库,然后分别创建了两个数组arr1和arr2。接着,我们使用intersect1d()函数将两个数组中的共同值保存到一个新的数组中,并将其打印出来。输出结果为:

[3 4 5]

上述示例中,两个数组中的共同值为3、4和5。下面再给出一个更复杂的示例。

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[3, 4], [5, 6]])

common_arr = np.intersect1d(arr1, arr2)

print(common_arr)

在上面的代码中,我们创建了两个二维数组arr1和arr2,每个数组中包含两个一维子数组。接着,我们使用intersect1d()函数将两个数组中的共同值保存到一个新的数组中,并将其打印出来。然而,由于我们处理的是二维数组,intersect1d()函数在默认情况下会将数组展开为一维数组,因此我们得到的输出结果为:

[3 4]

这里的共同值为3和4,它们是两个数组中共同的元素。注意,如果我们想要获取原始的二维数组中的共同值,我们需要将intersect1d()函数的参数设置为flatten=False:

common_arr = np.intersect1d(arr1, arr2, assume_unique=True, axis=None)

通过设置axis,我们可以在跨维度比较时指定沿哪个轴执行比较。如果您而是在一维数组之间执行比较,请将此参数保留为默认值None。

总结起来,通过使用NumPy库的intersect1d()函数,我们可以非常方便地找到两个NumPy数组之间的共同值。在使用过程中,需要注意数组的维度和设置参数的方式。