Python Numpy数组多条件布尔

Python Numpy数组多条件布尔,python,arrays,python-3.x,numpy,boolean,Python,Arrays,Python 3.x,Numpy,Boolean,我希望我的数组通过两个条件。如果我只使用一个,我不会有任何问题,但是如果我给代码两个条件,python崩溃。这是我的密码: import numpy as np from collections import deque queue = deque([], maxlen=10) queue.appendleft(31) queue.appendleft(32) queue.appendleft(33) cond1 = 35 cond2 = 30 A_1 = np.array(queue)

我希望我的数组通过两个条件。如果我只使用一个,我不会有任何问题,但是如果我给代码两个条件,python崩溃。这是我的密码:

import numpy as np
from collections import deque

queue = deque([], maxlen=10)

queue.appendleft(31)
queue.appendleft(32)
queue.appendleft(33)

cond1 = 35
cond2 = 30

A_1 = np.array(queue)

print(cond2 > A_1 < cond1)
# print(A_1 > 30)  # works
# array([ True,  True,  True], dtype=bool)

print(((cond2 > A_1 < cond1).sum() == A_1.size).astype(np.int))
# print(((A_1 > 30).sum() == A_1.size).astype(np.int))  # works
# 1
将numpy导入为np
从集合导入deque
queue=deque([],maxlen=10)
队列左(31)
队列左(32)
队列左(33)
康德1=35
cond2=30
A_1=np.数组(队列)
打印(cond2>A_130)#作品
#数组([True,True,True],dtype=bool)
打印((cond2>A_130.sum()==A_1.size).astype(np.int))#有效
# 1

它应该类似于
np.logical和(A_1cond2)

如果要检查是否所有元素都满足,只需
np.all(np.logical_和(A_1cond2))


cond2>A_1
无法按预期工作,因为
cond2>A_1
返回布尔数组。根据您的描述,不需要将布尔值与
cond1
进行比较。为了明确起见,可以使用
np.logical\u和

它应该类似于
np.logical\u和(A\u 1cond2)

如果要检查是否所有元素都满足,只需
np.all(np.logical_和(A_1cond2))


cond2>A_1
无法按预期工作,因为
cond2>A_1
返回布尔数组。根据您的描述,不需要将布尔值与
cond1
进行比较。为了明确起见,可以使用
np.logical\u和

以下是一个随机示例:

import numpy as np

np.random.seed(123456)

array = np.array(np.random.randn(12))

print((array < 1) & (array > 0))
将numpy导入为np
np.random.seed(123456)
array=np.array(np.random.randn(12))
打印((数组<1)和(数组>0))

numpy必须将条件放在括号中,然后对And条件使用&运算符。对于or条件,使用|运算符,然后遵循相同的格式。这将得到一个布尔值数组

以下是一个随机示例:

import numpy as np

np.random.seed(123456)

array = np.array(np.random.randn(12))

print((array < 1) & (array > 0))
将numpy导入为np
np.random.seed(123456)
array=np.array(np.random.randn(12))
打印((数组<1)和(数组>0))

numpy必须将条件放在括号中,然后对And条件使用&运算符。对于or条件,使用|运算符,然后遵循相同的格式。这将得到一个布尔值数组

Numpy不支持速记操作符。请明确地这样陈述:
(cond2>A_1)和(A_1
另外,我不明白第二个条件在做什么,但在我看来它并不正确。我明白,但我不明白
((cond2>A_1
试图做什么。哦,好的,这是有道理的。无论如何,我的第一条评论中的解决方案应该是有效的,以防你还没有看到它。是的,你把它打开了:
(cond1>A_1)和(A_1
。。。现在这更有意义了吗?Numpy不支持速记操作符。请明确地这样陈述:
(cond2>A_1)和(A_1
另外,我不明白第二个条件在做什么,但在我看来它并不正确。我明白,但我不明白
((cond2>A_1
试图做什么。哦,好的,这是有道理的。无论如何,我的第一条评论中的解决方案应该是有效的,以防你还没有看到它。是的,你把它打开了:
(cond1>A_1)和(A_1
。。。现在这更有意义了吗?谢谢你的回答。这与我的例子不符。一切都返回False。@xin这只是伪代码。如果将条件设置为我指定的特定条件,代码中可能没有返回的示例。如果您将条件设置为所需的条件,那么代码将返回什么?谢谢您的回答。这与我的例子不符。一切都返回False。@xin这只是伪代码。如果将条件设置为我指定的特定条件,代码中可能没有返回的示例。如果将条件设置为所需的条件,代码将返回什么?