1

私は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

誰かがそれを手伝ってくれますか?

4

1 に答える 1

1

ValueErrorあなたが見ているのは NumPy によるものです: 配列をブール値のコンテキストで評価しようとする (つまり、その配列を true または false として解釈する) たびに発生します。少し関連する以前の 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()は true になります。とが完全に一致する場合、式は false になります。E_oldE_newE_oldE_new

注: メソッドも参照することをお勧めしますallclose

于 2013-11-07T21:45:54.403 に答える