Numpy関数について -集合関数系
numpyの中のよく使う集合関数について整理。 単にデータ処理するだけでなく、エラーの原因を調べるためにも重宝します。
よく使う集合関数
insersect1d関数
重複しているものだけを取り出したい時。
(例)
[in]
np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1])
[out]
array([1, 3])
このままだと2次元配列には使用できないですが、reduce と組み合わせることで2次元配列でも対応可能。
(例)
[in]
from functools import reduce
reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]))
[out]
array([3])
isin関数
1番目の引数の配列の各要素が、2番目の引数の配列に含まれるかどうかの真偽値を返す。
(例)
[in]
nobel = 2*np.arange(4).reshape((2, 2)) #array([[0, 2],[4, 6]])
lab =[[0,2],[1,4]]
mask = np.isin(nobel, lab)
[out]
array([[ True, True], [ True, False]])
setdiff1d関数
1番目の引数の配列の各要素から、2番目の引数の配列に含まれる要素を除外した要素を返す。結果はソートされて返る。
(例)
[in]
setdiff1d = np.setdiff1d(nobel, lab)
setdiff1d
[out]
array([6])
unique関数
1次元の配列から重複を取り除き、ソートした配列を返す。
(例)
[in]
a1 = np.array([1, 3, 2, 0, 1, 2, 2, 1])
print(np.unique(a1))
[out]
[0 1 2 3]