だから私はこれらの条件を持っています:
A = 0〜10または40〜60
B = 20〜50
そして私はこのコードを持っています:
area1 = N.where((A>0) & (A<10)),1,0)
area2 = N.where((B>20) & (B<50)),1,0)
私の質問は、numpyで「 OR 」条件をどのように行うかです。
&
ブール値に対してnumpyがオーバーロードする場合は、それがブール値であるとand
安全に想定できます。|
or
area1 = N.where(((A>0) & (A<10)) | ((A>40) & (A<60))),1,0)
ありますnumpy.logical_or
http://docs.scipy.org/doc/numpy/reference/generated/numpy.logical_or.html
numpylogical_and
とlogical_or
あなたが望むufuncsです(私は思う)
&
ではないlogical and
ことに注意してください。ビット単位 and
です。(a> 10)は、2番目の条件と同様に論理配列(たとえば、1と0)を返すため、これは引き続き機能します。したがって、この場合、「論理積」と「ビット単位」は同等です(論理積とビット単位と同じor
)。ただし、他の場合では、ビット演算によって驚くべき結果が得られる可能性があります(主に、Python&
と|
演算子の優先順位がこれらのコンテキストで予想されるよりも低いためです)。