Python

numpy.ndarrayでboolean配列を反転させる方法

2019-03-17

numpy.ndarrayでboolean配列を反転させる方法

numpy.ndarrayでどうやってboolean配列を反転させたらいいの?


Pythonで配列を扱うのに便利な Numpy

numpyでは数値以外にも扱うことができる。

中にはTrue/Falseのbooleanもあるが、このTrue/Falseを反転させるにはどうしたらいいのか

そこで今回はnumpy.ndarrayでboolean配列を反転させる方法について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。

記事を読むメリット

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関連の記事もあるので、もし気になるものがあれば見てみて欲しい

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-Python
-,

© 2024 ITips