or2 つのスカラーの間にある場合は明確ですが、正しいベクトルの一般化は何ですか? ifx == array([0, 0])とy == array([0,1]), はx or y(1) False である必要があります。なぜなら、or組み合わせたすべてのペアワイズ項が True であるとは限らないからです (2) True です。なぜなら、少なくとも 1 つのペアワイズor結果が true だからです (3) array([0, 1]), なぜなら、それは an のペアワイズ結果だからですor(4) array([0, 0])、空でないリストは真であるため[0,0] or [0,1]に返されるため、 s はそうあるべきか?[0,0]array
|ここで使用して、ビットごとの問題として扱うことができます。
>>> import numpy as np
>>> vec = np.arange(10)
>>> vec[(vec == 2) | (vec == 7)]
array([2, 7])
numpyベクトル化された論理和を明示的に使用します。
>>> np.logical_or(vec==3, vec==5)
array([False, False, False, True, False, True, False, False, False, False], dtype=bool)
>>> vec[np.logical_or(vec==3, vec==5)]
array([3, 5])
またはin1d、ここでははるかに効率的な を使用します。
>>> np.in1d(vec, [2, 7])
array([False, False, True, False, False, False, False, True, False, False], dtype=bool)
>>> vec[np.in1d(vec, [2, 7])]
array([2, 7])