NumPy 集合運算
什麼是集合
集合在數學中是指一組唯一元素的集合。
集合用於涉及頻繁的交集、並集和差集運算的場景。
在 NumPy 中建立集合
我們可以使用 NumPy 的 unique()
方法來查詢任何陣列中的唯一元素。例如,建立一個集合陣列,但請記住,集合陣列只能是 1-D 陣列。
示例
將以下包含重複元素的陣列轉換為集合
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
x = np.unique(arr)
print(x)
自己動手試一試 »
查詢並集
要查詢兩個陣列中的唯一值,請使用 union1d()
方法。
示例
查詢以下兩個集合陣列的並集
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
newarr = np.union1d(arr1, arr2)
print(newarr)
自己動手試一試 »
查詢交集
要僅查詢兩個陣列中都存在的數值,請使用 intersect1d()
方法。
示例
查詢以下兩個集合陣列的交集
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
newarr = np.intersect1d(arr1, arr2, assume_unique=True)
print(newarr)
自己動手試一試 »
注意: intersect1d()
方法帶有一個可選引數 assume_unique
,如果設定為 True,可以加快計算速度。在使用集合時,應始終將其設定為 True。
查詢差集
要僅查詢第一個集合中不存在於第二個集合的數值,請使用 setdiff1d()
方法。
示例
查詢 set1 相對於 set2 的差集
import numpy as np
set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])
newarr = np.setdiff1d(set1, set2, assume_unique=True)
print(newarr)
自己動手試一試 »
注意: setdiff1d()
方法帶有一個可選引數 assume_unique
,如果設定為 True,可以加快計算速度。在使用集合時,應始終將其設定為 True。
查詢對稱差集
要僅查詢同時不在兩個集合中的數值,請使用 setxor1d()
方法。
示例
查詢 set1 和 set2 的對稱差集
import numpy as np
set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])
newarr = np.setxor1d(set1, set2, assume_unique=True)
print(newarr)
自己動手試一試 »
注意: setxor1d()
方法帶有一個可選引數 assume_unique
,如果設定為 True,可以加快計算速度。在使用集合時,應始終將其設定為 True。