在numpy中组合逻辑(布尔)表达式

在numpy中组合逻辑(布尔)表达式,numpy,boolean,expression,Numpy,Boolean,Expression,我想组合逻辑表达式,但出现了一个异常: array = np.arange(10) array > 1 array([False, False, True, True, True, True, True, True, True, True]) array < 4 array([ True, True, True, True, False, False, False, False, False, False]) (array >

我想组合逻辑表达式,但出现了一个异常:

array = np.arange(10)
array > 1 
array([False, False,  True,  True,  True,  True,  True,  True,  True,
        True])
array < 4
array([ True,  True,  True,  True, False, False, False, False, False,
       False])
(array > 1 & array < 4)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
array=np.arange(10)
数组>1
数组([假,假,真,真,真,真,真,真,真,
正确])
数组<4
数组([真,真,真,真,假,假,假,假,假,
错误])
(数组>1和数组<4)
ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()

我所期望的是一个长度为10的布尔数组,在索引2和3处有真值——在这两个条件都满足的地方——在其他地方为假。

您需要numpy的逻辑和函数

import numpy as np
np.logical_and(array>1, array<4). # [False, False,  True,  True,  False, False,  False, False,  False, False]
将numpy导入为np

np.logical_and(array>1,arrayYou应该将条件括在括号中,因为
&
的优先级高于比较运算符:
(array>1)和(array<4)