Pythonで配列を扱うのに便利な Numpy
。
numpyでは数値以外にも扱うことができる。
中にはTrue/Falseのbooleanもあるが、このTrue/Falseを反転させるにはどうしたらいいのか。
そこで今回はnumpy.ndarrayでboolean配列を反転させる方法について紹介する。
この記事を書いている人
記事を読むメリット
numpy.ndarrayでboolean配列を反転させる方法がわかり、numpyでのデータ処理が得意になる
numpyのboolean配列
まずはデータを準備する。
numpyのboolean配列は以下のように定義できる。
import numpy as np np_bool_list = np.array([[True,False],[True,False]]) print(np_bool_list) #[[ True False] #[ True False]] np_list = np.array([[1,2],[3,4]]) print(np_list) #[[1 2] #[3 4]] print(np_list[np_bool_list]) #[1 3]
使い方の一つとして配列のマスク処理がある。
逆のマスク処理をしたい場合に、反転したboolean配列が必要となる。
しかしnot
や!
では反転できない。
reverse_list = not(np_bool_list) #ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
reverse_list = !np_bool_list #SyntaxError: invalid syntax
numpy.ndarrayでboolean配列を反転させる方法
numpyでboolean配列を反転させるには numpy.logical_not
を使う。
np_reverse_list = np.logical_not(np_bool_list) print(np_reverse_list) #[[False True] #[False True]]
まとめ
今回はnumpy.ndarrayでboolean配列を反転させる方法について解説した。
numpy.ndarrayでboolean配列を反転させるポイントは以下の通り。
ココがポイント
not
や!
では反転できずエラーになる- 反転させるには
numpy.logical_not
を使う
他にもPython関連の記事もあるので、もし気になるものがあれば見てみて欲しい。