[解決済み] ゼロ除算で0を返すには
2022-06-03 21:35:59
質問
Pythonで要素単位の除算をしようとしていますが、ゼロが発生した場合、商がゼロになるようにする必要があります。
例えば
array1 = np.array([0, 1, 2])
array2 = np.array([0, 1, 1])
array1 / array2 # should be np.array([0, 1, 2])
しかし、本当にnumpyの最適化を利用するには、エラーを無視するのではなく、ゼロによる除算のエラーの際に0を返すdivide関数が必要です。
私が何かを見逃していない限り、これは numpy.seterr() はエラー時に値を返すことができないようです。誰か、私自身のゼロ除算エラー処理を設定しながら、numpyを最大限に活用する方法について他の提案がありますか?
どのように解決するのですか?
numpy v1.7+では、"where"オプションを利用することで ufuncs . あなたは1行で物事を行うことができ、errstateコンテキストマネージャを処理する必要はありません。
>>> a = np.array([-1, 0, 1, 2, 3], dtype=float)
>>> b = np.array([ 0, 0, 0, 2, 2], dtype=float)
# If you don't pass `out` the indices where (b == 0) will be uninitialized!
>>> c = np.divide(a, b, out=np.zeros_like(a), where=b!=0)
>>> print(c)
[ 0. 0. 0. 1. 1.5]
この場合、bが0にならない「場所」ならどこでも除算を行います。 bがゼロに等しい場合、'out'引数で最初に与えたどのような値からも変更されないままです。
関連
-
python call matlab メソッドの詳細
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
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 string splicing.join()とsplitting.split()の説明
-
Python百行で韓服サークルの画像クロールを実現する
-
Pythonの@decoratorsについてまとめてみました。
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Python pandasで共起行列を構築する