PythonでRuntimeWarning: invalid value encountered in double_scalars問題を解決する方法
2022-01-21 08:13:09
ピアソンのクラス相関係数を計算するコードを書いていたら、以下の警告に遭遇しました。
RuntimeWarning: double_scalars で無効な値に遭遇しました。
該当するコードスニペットは以下の通りです。(上記のプロンプトは、以下のステートメントの実行中に表示されます)
id_col=(t_fa*id_part).sum()/(item_squre_rating[id]*item_squre_rating[col])
まず、最初のポイントは以下の通りです。
- これは警告であって、エラーではありません。だから、実行時に表示されても、コードは問題なく動作する。しかし同時に、これはエラーではないので、try-exceptを使用しても捕捉されません。
- このヒントは通常0/0で発生しますが、分母が0の場合はZeroDivisionError(0÷例外)が発生しないことも意外と知られていないようです。
- 解決方法 if-else ステートメントを使用して、分母が 0 になったときに id_col を再割り当てするように判断します。
ここでは、ZeroDivisionError例外とRuntimeWarning警告の違いと、どのような状況でこの2種類のヒントが発生するのかを簡単に説明します。
- ZeroDivisionError例外は、分母0が組み込みのデータ型である場合に発生します。
- 分母0がnumpyのデータ型である場合、RuntimeWarningの警告をトリガーします。
- 組み込みデータ型がnumpyデータ型で計算される場合、計算結果はnumpyで計算された型になります。
私のコードのRuntimeWarningヒントは、計算の分子部分がnumpy.float64型だからで、分子部分もnumpy.float64に変更すれば、0で割ったときにエラーにならないはずです。
関連
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】Pygameのカウントダウンタイマー
-
[解決済み】ImportError: xgboost という名前のモジュールがない
-
に対する解決策です。RuntimeError: 巡回辞書操作時に反復処理中に辞書サイズが変更された。
-
jupyter notebook で pycharm のエラーが発生しました。'_xsrf' 引数が POST から抜けている
-
[解決済み] グループ化されたPandasデータフレームをループオーバーする方法は?
-
[解決済み] Pythonでxのn乗根のショートハンドはありますか?
-
[解決済み] Pylintの設定を抑制・操作することなく、「関数内のローカル変数が多すぎる」ことを抑制するためのベストプラクティスは何でしょうか?
-
[解決済み] Matlabのセルアレイに相当するものは何ですか?
-
python-TypeError: write() の引数は str でなければならず、numpy.float64 であってはならない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
Python自動化テスト、3分間のログでバグを特定する
-
[解決済み] ImportError: pymongo'という名前のモジュールがありません。
-
[解決済み] Python 3 - ValueError: アンパックする値が足りない (期待値 3、取得値 2)
-
[解決済み] テールリカーシオンフィボナッチ
-
[解決済み] Youtube_dl : ERROR : YouTube は言いました。動画データを抽出できません
-
[解決済み] TypeError: 'float' 型の引数は反復可能ではありません。
-
[解決済み] 1次元numpy配列のためのPythonメディアンフィルタ
-
[解決済み] 辞書で「TypeError: 'unicode' object does not support item assignment」が発生する。
-
[解決済み] python: sys が定義されていない