numpy.intersect1d #

麻木的。intersect1d ( ar1 , ar2 , Should_unique = False , return_indices = False ) [来源] #

找到两个数组的交集。

返回两个输入数组中已排序的唯一值。

参数
ar1, ar2类似数组

输入数组。如果还不是 1D,则将被展平。

假定唯一布尔值

如果为 True,则假定输入数组都是唯一的,这可以加快计算速度。如果为 True 但ar1ar2不唯一,则可能会导致不正确的结果和越界索引。默认值为 False。

return_indices布尔值

如果为 True,则返回与两个数组的交集相对应的索引。如果有多个值,则使用值的第一个实例。默认值为 False。

1.15.0 版本中的新增功能。

返回
intersect1d ndarray

常见和独特元素的已排序一维数组。

comm1 ndarray

ar1中第一次出现的公共值的索引。仅当return_indices为 True时才提供。

Comm2 ndarray

ar2中第一次出现的公共值的索引。仅当return_indices为 True时才提供。

也可以看看

numpy.lib.arraysetops

具有许多其他函数的模块,用于对数组执行集合操作。

例子

>>> np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1])
array([1, 3])

要相交两个以上的数组,请使用 functools.reduce:

>>> from functools import reduce
>>> reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]))
array([3])

要返回输入数组共有的值的索引以及相交的值:

>>> x = np.array([1, 1, 2, 3, 4])
>>> y = np.array([2, 1, 4, 6])
>>> xy, x_ind, y_ind = np.intersect1d(x, y, return_indices=True)
>>> x_ind, y_ind
(array([0, 2, 4]), array([1, 0, 2]))
>>> xy, x[x_ind], y[y_ind]
(array([1, 2, 4]), array([1, 2, 4]), array([1, 2, 4]))