我是 python 新手,我收到以下错误:
while (E_old != E_new) and self.num_iter < 42:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我尝试使用:
while (E_old != E_new) and (self.num_iter < 42).all: but it still gave an issue
有人可以帮我吗?
我是 python 新手,我收到以下错误:
while (E_old != E_new) and self.num_iter < 42:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我尝试使用:
while (E_old != E_new) and (self.num_iter < 42).all: but it still gave an issue
有人可以帮我吗?
您所ValueError
看到的来自 NumPy:每当您尝试在布尔上下文中评估数组时(即,将该数组解释为真或假),都会发生这种情况。有一些与以前的 StackOverflow 问题和答案有些相关的问题。例如,请参阅此答案。
在这种情况下,问题似乎可能是其中一个E_old
或E_new
(或可能两者)是 NumPy 数组。该表达式E_old != E_new
是一个布尔数组,NumPy 拒绝猜测如何在布尔上下文中解释它。如果你用 替换E_old != E_new
你的表达式(E_old != E_new).any()
,你应该会看到问题消失了。如果 的任何组件与 的相应组件不同,则表达式(E_old != E_new).any()
将为真。如果和完全匹配,则表达式将为假。E_old
E_new
E_old
E_new
注意:您可能还想查看该allclose
方法。