65

numpy 配列の各要素が 2 つの数値の間にあるかどうかをチェックする構文的に簡単な方法があるかどうか疑問に思っていました。

つまり、numpy.array([1,2,3,4,5]) < 5will returnarray([True, True, True, True, False])と同じように、これに似たことができるかどうか疑問に思っていました:

1 < numpy.array([1,2,3,4,5]) < 5

... 取得する ...

array([False, True, True, True, False])

ブール値テストの論理連鎖によってこれを取得できることは理解していますが、かなり複雑なコードを処理していて、構文的にクリーンなソリューションを探していました。

任意のヒント?

4

4 に答える 4

97

1つの解決策は次のとおりです。

import numpy as np
a = np.array([1, 2, 3, 4, 5])
(a > 1) & (a < 5)
# array([False,  True,  True,  True, False])
于 2012-05-10T21:23:11.607 に答える