論理演算

論理変数(True または False)を格納するnumpy data array に対して、配列要素ごとに

and (&), or (|), xor (^) で演算を行うことができる。3つの配列も同時に処理できる。

nx=np.array([True, True, False])

ny=np.array([False, True, False])

nz=np.array([False, False, True])

としていくつかの演算の結果を示す

In: nx & ny

Out: array([False, True, False])

In : nx | ny

Out: array([ True, True, False])

In : nx & ny & nz

Out: array([False, False, False])

またandなどで評価するのを論理演算にする場合には、()でくくることが必要である。たとえば、x, y, z が実数型のnumpy dataarray であるとして、

(x>0) & (y> 0) & (z>0)

はよいが

x>0 & y> 0 & z>0

エラーになる。

&, |, ^ と同じ結果を np.logical_and, np.logical_or, np.logical_xor でも得ることができるが、無駄に長いので使わなくてよさそうである。