numpy.intersect1d#
- numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)[源代码]#
找到两个数组的交集.
返回在两个输入数组中的已排序的唯一值.
- 参数:
- ar1, ar2array_like
输入数组.如果不是已经1D,将被展平.
- assume_uniquebool
如果为真,则假定输入数组都是唯一的,这可以加快计算速度.如果为真但
ar1
或ar2
不是唯一的,可能会导致不正确的结果和越界索引.默认值为 False.- return_indicesbool
如果为真,则返回对应于两个数组交集的索引.如果存在多个值的实例,则使用第一个实例.默认值为假.
在 1.15.0 版本加入.
- 返回:
- intersect1dndarray
常见和唯一元素的排序一维数组.
- comm1ndarray
ar1 中首次出现的公共值的索引.仅当 return_indices 为 True 时提供.
- comm2ndarray
ar2 中首次出现的公共值的索引.仅在 return_indices 为 True 时提供.
示例
>>> import numpy as np >>> 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]))