論理演算
論理変数(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 でも得ることができるが、無駄に長いので使わなくてよさそうである。