我想找出一种更清洁的方法来做到以下几点:
import numpy
a = np.array([1,2,4,5,1,4,2,1])
cut = a == (1 or 2)
print cut
[ True False False False True False False True]
以上当然是一个简化的例子。表达式(1 or 2)
可能很大或很复杂。首先,我想这样概括一下:
cutexp = (1 or 2)
cut = a == cutexp
也许, cutexp 可以变成一个功能或者其他东西,但我不知道从哪里开始寻找。
答案 0 :(得分:3)
您也可以尝试numpy.in1d。说
>>> a = np.array([1,2,4,5,1,4,2,1])
>>> b = np.array([1,2]) # Your test array
>>> np.in1d(a,b)
array([ True, True, False, False, True, False, True, True], dtype=bool)
答案 1 :(得分:2)
>>> (a == 2) | (a == 1)
array([ True, True, False, False, True, False, True, True], dtype=bool)