複数の基準を満たすNumpy配列の要素のインデックスを見つけるにはどうすればよいですか?
例:この関数をnumpy.nonzero
使用すると、いくつかの基準に従ってインデックスを見つけることができます。
In [1]: from numpy import *
In [2]: a = array([1,0,1,-1])
In [5]: nonzero(a != 0)
Out[5]: (array([0, 2, 3]),)
ただし、このような複数の基準を指定しても機能しません。
In [6]: nonzero((a != 0) and (a < 0))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/cls/<ipython-input-6-85fafffc5d1c> in <module>()
----> 1 nonzero((a != 0) and (a < 0))
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
MATLABでは、次のように書くことができます。
find((d != 0) & (d < 0))
Numpyでこれを行うにはどうすればよいですか?