兩個陣列的 NumPy 交集

Muhammad Maisam Abbas 2023年1月30日
  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