我想知道是否有一种语法上简单的方法来检查numpy数组中的每个元素是否位于两个数字之间.
换句话说,就像numpy.array([1,2,3,4,5]) < 5回归一样array([True, True, True, True, False]),我想知道是否有可能做类似于此的事情:
1 < numpy.array([1,2,3,4,5]) < 5
......获得......
array([False, True, True, True, False])
我理解我可以通过布尔测试的逻辑链接来获得这个,但我正在研究一些相当复杂的代码,我正在寻找一个语法上干净的解决方案.
有小费吗?
mat*_*ata 58
一个解决方案是:
a = numpy.array([1,2,3,4,5])
(a > 1).all() and (a < 5).all()
Run Code Online (Sandbox Code Playgroud)
如果你想要真正的vaues的真实数组,只需使用:
(a > 1) & (a < 5)
Run Code Online (Sandbox Code Playgroud)
另一种是使用numpy.any,这是一个例子
import numpy as np
a = np.array([1,2,3,4,5])
np.any((a < 1)|(a > 5 ))
Run Code Online (Sandbox Code Playgroud)