numpy.intersect1d
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False) [source]
找到两个数组的交集。
返回两个输入数组中已排序的唯一值。
参数 : | ar1, ar2 :array_like 输入数组。 如果尚未为1D,则将被展平。 assume_unique : 如果为 这可以加快计算速度。 默认值为 return_indices : 如果为 如果有多个值,则使用值的第一个实例。 默认值为 1.15.0版中的新功能。 |
返回值 : | intersect1d : 常见和唯一元素的排序一维数组。 comm1 : ar1中共同值的首次出现的索引。 仅在return_indices为 comm2 :ndarray ar2中公共值首次出现的索引。 仅在return_indices为 |
例子
>>> 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]))