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

时间:2018-06-09 07:31:01

标签: 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 > 1 & array < 4)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我期望的是一个长度为10的布尔数组,在索引2和3处具有True值 - 其中两个条件都满足 - 而在其他地方则为False。

您的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

你需要numpy的logical_and函数。

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