通过测试numpy数组中的每个元素是否在2个数字之间来创建布尔数组

时间:2015-10-26 22:04:12

标签: python arrays numpy boolean

我有一个数字的numpy数组,我想创建一个大小和尺寸相同的布尔数组,说明该元素是否位于2个数字之间。例如:

a=np.array([[1,2,3],[4,5,6],[7,8,9]])

我知道如果我写,

print a>3

我得到的数组前三个元素为“False”,其余为“True”

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

但是我想得到一个布尔数组,条件是这样的

a>3 and a<8

有没有办法在没有在for循环中逐个检查每个元素的情况下执行此操作?我有2048 * 2048的数组,这需要太长时间

有些人报告说,问题与另一个解决方案是使用numpy.where函数的问题相同,但是返回条件为真的元素,我的问题是返回布尔值

1 个答案:

答案 0 :(得分:0)

您可以检查以下范围:

print (3<a)&(a<8)