or
當它在兩個標量之間時是明確的,但什麼是正確的向量泛化?如果x == array([0, 0])
和y == array([0,1])
,應該x or y
是:(1)假的,因爲不是所有的兩兩方面or
-ed在一起是真的,(2)真,因爲至少有一個成對or
結果爲真,(3)array([0, 1])
,因爲這是成對結果or
,(4)array([0, 0])
,因爲[0,0] or [0,1]
會返回[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])