使用numpy数组计算时放置条件

时间:2013-08-23 08:06:51

标签: python numpy

下面是一小段代码,由于某种原因,它会一直生成以下值错误消息: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.anyp.all,仍然收到相同的错误消息。有什么建议?感谢。

1 个答案:

答案 0 :(得分:4)

您的问题是pq各有三个元素,因此p + q == 7也会有三个元素。对于while循环,您需要一些可以解释为True或False的东西 - 错误告诉您如果没有更多信息,三个元素不能被解释为True或False:它是不明确的。如果您希望所有元素都等于7,请使用

while np.all(p + q == 7):

如果你想让它们中的任何一个相等,请使用

while np.any(p + q == 7):