配列内のaより大きくbより小さいすべての要素のインデックスを見つけようとしています。これはおそらく私の構文の問題ですが、これは機能しません。
numpy.where((my_array > a) and (my_array < b))
これをどのように修正すればよいですか?それともそれを行うためのより良い方法はありますか?
ありがとう!
配列内のaより大きくbより小さいすべての要素のインデックスを見つけようとしています。これはおそらく私の構文の問題ですが、これは機能しません。
numpy.where((my_array > a) and (my_array < b))
これをどのように修正すればよいですか?それともそれを行うためのより良い方法はありますか?
ありがとう!
次の 2 つの方法があります。
In [1]: my_array = arange(10)
In [2]: where((my_array > 3) & (my_array < 7))
Out[2]: (array([4, 5, 6]),)
In [3]: where(logical_and(my_array > 3, my_array < 7))
Out[3]: (array([4, 5, 6]),)
最初のもの ( に置き換えます) については、and
括弧&
を適切に追加するように注意してください: &
比較演算子よりも優先度が高くなります。も使用できますが*
、お勧めしません。ハックであり、読み取り可能なコードにはなりません。
In [4]: where((my_array > 3) * (my_array < 7))
Out[4]: (array([4, 5, 6]),)