下面是一小段代码,由于某种原因,它会一直生成以下值错误消息:ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()。
import numpy as np
p=np.array([1,2,3])
q=np.array([4,5,5])
while p + q==7:
try:
assert p.any()
assert q.any()
except AssertionError:
print('(p + q)<=6')
print (p + q)
我已经尝试了p.any
和p.all
,仍然收到相同的错误消息。有什么建议?感谢。
答案 0 :(得分:4)
您的问题是p
和q
各有三个元素,因此p + q == 7
也会有三个元素。对于while循环,您需要一些可以解释为True或False的东西 - 错误告诉您如果没有更多信息,三个元素不能被解释为True或False:它是不明确的。如果您希望所有元素都等于7,请使用
while np.all(p + q == 7):
如果你想让它们中的任何一个相等,请使用
while np.any(p + q == 7):