NumPyセット操作
セットとは
数学のセットは、ユニークな要素のコレクションです。
セットは、頻繁な共通部分、和集合、および差分演算を含む演算に使用されます。
NumPyでセットを作成する
NumPyのunique()
メソッドを使用して、任意の配列から一意の要素を見つけることができます。たとえば、セット配列を作成しますが、セット配列は1次元配列のみである必要があることに注意してください。
例
繰り返される要素を持つ次の配列をセットに変換します。
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
x = np.unique(arr)
print(x)
和集合を見つける
2つの配列の一意の値を見つけるには、このunion1d()
メソッドを使用します。
例
次の2つの集合配列の和集合を見つけます。
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()
メソッドを使用します。
例
次の2つのセット配列の共通部分を見つけます。
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に設定する必要があります。