numpyのxor

numpyにはxorを計算する関数が用意されている

使い方は
logical_xor( condition1, condition2)
(condition1, condition2はTrueになる条件)
return valueは計算したあとのオブジェクト.下の例の場合は配列が返ってくる

import numpy as np

if __name__ == '__main__':
    data = np.random.randn(10, 2)

    # 排他的論理和作成
    xor = np.logical_xor(data[:, 0] > 0, data[:, 1] > 0)
    xor2 = ((data[:, 0] >= 0) & (data[:, 1] < 0)) | ((data[:, 0] < 0) & (data[:, 1] >= 0))
    print(xor)
    print(xor2)

# output
# [ True  True  True False  True False  True False False  True]
# [ True  True  True False  True False  True False False  True]

手書きで書いたxorともちろん結果は一致する.
他の論理演算も用意されているみたい.