【Python】配列同士の AND や OR, NOT を取る方法
Boolの配列同士でAND, OR, NOTを取る方法。
listとnumpyで方法が違うので覚え書き (こうゆう操作感の違いは何とかしてほしい...)
配列からTrueの部分だけ抽出するときなんかに便利。
oregengo.hatenablog.com
list の場合
戻り値はlist
a = [True, True, False, False] b = [True, False, True, False] # AND c = a and b > [True, False, True, False] # OR c = a or b > [True, True, False, False] # Not c = not a > False # 反転にはならない。配列全体が評価されてしまうので注意
numpy の場合
戻り値はndarray. 引数はlistも可
a = [True, True, False, False] b = [True, False, True, False] # AND c = np.logical_and(a, b) > array([ True, False, False, False]) # OR c = np.logical_or(a, b) > array([ True, True, True, False]) # Not c = np.logical_not(a) > array([False, False, True, True]) # ちゃんと反転できる