下面是一小段代码,由于某种原因不断生成以下值错误消息: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
,仍然得到同样的错误信息。有什么建议么?谢谢。
最佳答案
你的问题是 p
和 q
各有三个元素,所以 p + q == 7
也有三个元素。对于 while 循环,您需要一些可以解释为 True 或 False 的东西 - 错误告诉您三个元素不能在没有更多信息的情况下解释为 True 或 False:它是不明确的。如果您希望所有元素都等于 7,请使用
while np.all(p + q == 7):
如果你想让它们中的任何一个相等,使用
while np.any(p + q == 7):
关于python - 使用 numpy 数组计算时放置条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397869/