numpy.intersect1d

numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)[源代码]

找到两个数组的交集。

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

参数
AR1,AR2array_like

输入数组。如果尚未1d,将被展平。

assume_unique布尔

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

return_indices布尔

如果为真,则返回与两个数组交叉点对应的索引。如果存在多个值,则使用值的第一个实例。默认值为假。

1.15.0 新版功能.

返回
intersect1d恩达雷

对常见和唯一元素的一维数组进行排序。

comm1恩达雷

中公共值的第一次出现的索引 ar1 . 仅在以下情况下提供 return_indices 是True。

comm2恩达雷

中公共值的第一次出现的索引 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]))