NumPyの使い方(10) 集合関数
NumPyの集合関数について。
python標準のset型も参照。
1次元配列を対象とした集合関数
unique(x) | 重複を除外し、ソートした配列 |
in1d(x,y) | xの各要素がyに存在するか |
intersect1d(x, ) | 共通部分。積集合 |
union1d(x, y) | 和集合 |
setdiff1d(x, y) | 差集合 |
setxor1d(x, y) | 排他的論理和 |
np.unique()
1次元の配列から重複を取り除き、ソートした配列を返す。
python標準のsorted(set(seq))と同様の働き。
import numpy as np a1 = np.array([1, 3, 2, 0, 1, 2, 2, 1]) print(np.unique(a1)) # [0 1 2 3]
return_index=Trueとすると初回のインデックスを返す。
return_counts=Trueとすると、重複している回数を返す。
print(np.unique(a1, return_index=True)) # (array([0, 1, 2, 3]), array([3, 0, 2, 1], dtype=int32)) print(np.unique(a1, return_counts=True)) # (array([0, 1, 2, 3]), array([1, 3, 3, 1]))
in1d()
要素の存在判定をする関数
a1 = np.array([1, 3, 5, 5, 5, 1]) print(np.in1d(a1, [1, 2, 3])) # [ True True False False False True] print(np.in1d([1, 2, 3], a1)) # [ True False True]