1

私は次のことを行うためのよりクリーンな方法を見つけようとしています:

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は関数か何かに変えることができますが、どこから始めればよいのかわかりません。

4

2 に答える 2

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)
于 2012-05-05T18:49:57.183 に答える
2
>>> (a == 2) | (a == 1)
array([ True,  True, False, False,  True, False,  True,  True], dtype=bool)
于 2012-05-05T18:45:03.357 に答える