[解決済み] Numpyのゼロ除算がnp.where()のtrue_divideで発生した。
2022-02-08 13:43:25
質問
を取得したとき
np.where
がゼロによる除算を回避しようとする場合にも、エラーが発生します。
p_arr - 0.5
は常に
> 0
.
mo = np.where(p_arr > 0.5, -6.93/(p_arr - 0.5), 10)
<ブロッククオートRuntimeWarning: ゼロによる除算が true_divide で発生しました。
mo = np.where(p_arr > 0.5, -6.93/(p_arr - 0.5), 10)
その理由と修正方法に心当たりはありますか?さらに、エラーにp_arrからの正確な値が表示されるように、それを適切にデバッグする方法はありますか?
いくつかのテスト
x = np.where(p_arr > 0.5, p_arr, 1)
print(np.all((p_arr - 0.5 != 0))) # FALSE
print(np.all((x - 0.5 != 0))) # TRUE
解決方法は?
の疑似コードです。
np.where
:
def np_where(chooser, true_opt, false_opt):
out = np.empty(chooser.shape, dtype = true_opt.dtype)
out[~chooser] = false_opt
return out
重要なこと
true_opt
が生成されます。
以前
が関数を呼び出します。 そのため、もしその中の何かがエラーを起こしても、インタープリターは
np.where
- であっても
np.where
の部分を使うことはないでしょう。
true_opt
というエラーが発生します。
を取り除くことができます。
divide by zero
エラーは発生しませんが
np.seterr
他の回答で推奨されているように、セッション全体が停止してしまい、他のコードで問題が発生する可能性があります。 このようにすることができます。
with np.errstate(divide='ignore'):
mo = np.where(p_arr > 0.5, -6.93/(p_arr - 0.5), 10)
エラーの原因がどこにあったかを調べるには、ただ
np.where(p_arr == 0.5)
を取得していた座標が表示されるはずです。
divide by zero
エラー
関連
-
python implement mysql add delete check change サンプルコード
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] NumPyの配列を切り詰めずに、完全に表示するにはどうしたらよいですか?
-
[解決済み] NumPyでユークリッド距離はどのように計算できますか?
-
[解決済み] NumPy の配列を csv ファイルにダンプする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
python string splicing.join()とsplitting.split()の説明
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Pythonショートビデオクローラーチュートリアル
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】ValueError: xとyは同じサイズでなければならない