Pythonはエラーを報告します。複数の要素を持つ配列の真理値はあいまいです。
2022-02-23 02:06:28
前文
プログラマーの人生は、バグとの戦いの一生である。後進の便宜と、時折の自身の復習のために、この記事を書いて自分のバグを記録しているのである。
目次
全文
pythonを使っていると、必ずと言っていいほど特有のエラーが発生しますが、numpyパッケージを呼び出した後に、このエラーに遭遇することがよくあります。
DeprecationWarning: The truth value of an empty array is ambiguous.
Returning False, but in future this will
Use `array.size > 0` to check that an array is not empty.
今日は、この問題を解決するために
解決方法
Numpyは論理式の判別が曖昧で、等号の両側にある2つの方程式が数値的に等しければFalseを返すし、等号の両側にある2つの方程式が論理的に等しいのでTrueを返す。これは曖昧だと感じ、判断するのをあきらめ、or比較の場合はa.any()、with比較の場合はa.all()で統一している。これは次の例で体験できる。
import numpy as numpy
a=np.zeros(3)
a[0]=0; a[1]=2; a[2]=1
print (a-[0,2,1]).any() #[0,0,0] False
print (a-[0,2,1]).all() #[0,0,0] False
print (a-[1,3,2]).any() #[-1,-1,-1] True
print (a-[1,3,2]).all() #[-1,-1,-1] True
print (a-[0,3,2]).any() #[0,-1,-1] True
print (a-[0,3,2]).all() #[0,-1,-1] False
(a-b)比較のためのnumpy-array配列、Trueは異なる、Falseは同じを意味する
一部の要素は等しい、つまり numpy.all() はFalseを返し(多くの場合、期待されていない) numpy.any() はTrueを返します。すべての要素が等しい場合、どちらもFalseを返すので numpy.any() 比較する
関連
-
Pythonコードのデバッグ問題:IOError: イメージファイルを識別できない
-
ImportError: scipyという名前のモジュールがない(解決済み)
-
Python クローラーで AttributeError: 'NoneType' オブジェクトに属性 'text' がないエラー。
-
python3 のモジュール "importlib._bootstrap" に "SourceFileLoader" という属性がない問題を解決する。
-
Ubuntu pip AttributeError: 'module' オブジェクトに '_main' 属性がない。
-
AttributeError: モジュール 'tensorflow' には 'enable_eager_execution' という属性がない。
-
Python djangoプログラミングエラーのコツ、自作プログラミングで遭遇したエラーのまとめ 2018年11月8日更新
-
idea create python project report Unresolved reference 'xxx' .... の解決策
-
Pythonの非パッケージ問題で相対インポートを試みる
-
float32とfloat64の本質的な違い(ディープラーニングへの型影響とpythonの活用)。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[Django] CSRF 検証に失敗しました。
-
pythonがggplotパッケージを呼び出すとエラーが発生する AttributeError: 'DataFrame' オブジェクトに 'sort' 属性がない
-
SyntaxError: 構文が無効です。
-
ImportError: 名前のインポートができない imsave エラー
-
問題解決しました。Pythonを起動しても「ImportError: No module named site" というエラーでPythonを起動する。
-
Python がエラー xxx.whl はこのプラットフォームでサポートされているホイールではありませんと報告します。
-
Python Next SyntaxError: print' の呼び出しに括弧がありません。print(" ") のことですか?
-
scipyという名前のモジュールがない場合の解決策|エラー
-
Pythonエラー解決] 'urllib2'という名前のモジュールがない解決方法
-
Python で実行 TypeError: + でサポートされていないオペランド型: 'float' および 'str'.