两个数组的 NumPy 交集

Muhammad Maisam Abbas 2023年1月30日 2021年7月4日
  1. NumPy 与 Python 中的 numpy.in1d() 方法相交
  2. NumPy 与 Python 中的 numpy.intersect1d() 方法相交
两个数组的 NumPy 交集

本教程将介绍在 Python 中对 NumPy 数组执行交集的方法。

NumPy 与 Python 中的 numpy.in1d() 方法相交

交集是指两组元素中的公共元素。如果我们想找到两个一维 NumPy 数组的交集,我们可以使用 Python 中的 numpy.in1d() 方法numpy.in1d() 方法获取两个数组,检查第一个数组的每个元素是否存在于第二个数组中,并返回一个布尔数组,其中包含两个数组中存在的每个元素的真值和每个存在元素的假值在第一个数组中,但不在第二个数组中。我们可以使用这个结果数组作为第一个数组索引来获取两个数组中的公共元素。

import numpy as np

A = np.array([2,3,5,7,11])

B = np.array([1,3,5,7,9])

C = A[np.in1d(A, B)]
print(C)

输出:

[3 5 7]

我们首先使用 np.array() 方法创建了两个数组。然后我们将两个数组的交集存储在数组 CC = A[np.in1d(A, B)] 中。

NumPy 与 Python 中的 numpy.intersect1d() 方法相交

我们还可以使用 numpy.intersect1d() 方法 在 Python 中找到两个一维数组的交集。numpy.intersect1d() 方法获取数组并以另一个一维数组的形式返回排序的交集。请参考以下代码示例。

import numpy as np

A = np.array([2,3,5,7,11])

B = np.array([1,3,5,7,9])

C = np.intersect1d(A, B)
print(C)

输出:

[3 5 7]

我们在上面的代码中使用 numpy.intersect1d() 方法将数组 AB 的交集存储在数组 C 中。

两种方法都可以正常工作,但 np.intersect1d() 方法比 np.in1d() 方法更容易使用。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn