作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
x = np.arange(0,2,0.5)
valeur = 2*x
if valeur <= 0.6:
print ("this works")
else:
print ("valeur is too high")
这是我得到的错误:
if valeur <= 0.6:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我已经阅读了几篇关于 a.any() 或 a.all() 的帖子,但仍然找不到真正清楚地解释如何解决问题的方法。我明白为什么 Python 不喜欢我写的东西,但我不知道如何解决它。
最佳答案
如果你看一下 valeur <= 0.6
的结果,您可以看到导致这种歧义的原因:
>>> valeur <= 0.6
array([ True, False, False, False], dtype=bool)
所以结果是另一个数组,在这种情况下有 4 个 bool 值。现在结果应该是什么?当一个值为真时,条件是否应该为真?只有当所有值都为真时,条件才应该为真?
这正是 numpy.any
和 numpy.all
做。前者要求至少有一个真值,后者要求所有值都为真:
>>> np.any(valeur <= 0.6)
True
>>> np.all(valeur <= 0.6)
False
关于python - 使用 a.any() 或 a.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472814/
我是一名优秀的程序员,十分优秀!