NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中intersect1d方法的使用。

numpy.intersect1d

numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)       [source]

找到两个数组的交集。

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

参数 :

ar1, ar2 :array_like

输入数组。 如果尚未为1D,则将被展平。

assume_uniquebool

如果为True,则假定输入数组都是唯一的,

这可以加快计算速度。 默认值为False

return_indicesbool

如果为True,则返回与两个数组的交集相对应的索引。

 如果有多个值,则使用值的第一个实例。 默认值为False

 1.15.0版中的新功能。

返回值 :

intersect1dndarray

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

comm1ndarray

ar1中共同值的首次出现的索引。

 仅在return_indices为True时提供。

comm2 :ndarray

ar2中公共值首次出现的索引。

 仅在return_indices为True时提供。

例子

>>> 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]))

推荐文档

相关文档

大家感兴趣的内容

随机列表