2012-05-10 66 views
26

我想知道是否有句法简单的方法来检查numpy数组中的每个元素是否位于两个数字之间。简单的方法来测试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])

据我所知,我可以通过布尔测试的逻辑链获得这个,但我正在通过一些相当复杂的代码工作,我正在寻找f或语法清理解决方案。

任何提示?

回答

37

一个解决办法是:

a = numpy.array([1,2,3,4,5]) 
(a > 1).all() and (a < 5).all() 

如果你想真相vaues的acutal阵列,只需使用:

(a > 1) & (a < 5) 
+0

这只是返回'FALSE'并没有给我一个布尔值*每个元素* – blz

+1

我认为那就是你想要的,检查数组中的每个元素是否在两个数字之间...好吧,我是女王编辑... – mata

+0

没有硬性的感觉=)这必须是一件事我没想过去尝试。非常感谢! – blz

相关问题