1. ホーム
  2. python

ゼロで割るとNaNになる方法

2023-10-11 07:12:28

質問

Pythonで浮動小数点数の除算をするとき、0で割ると例外が発生します。

>>> 1.0/0.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: float division

ぜひとも NaN または Inf の代わりに(なぜなら NaN または Inf は私の計算の残りの部分を通して正しく伝搬し、私のプログラムを殺すことはありません)。

どうすればいいのでしょうか?

どのように解決するのですか?

この挙動を得るための最も簡単な方法は numpy.float64 の代わりに、Python のデフォルトである float 型に変更しました。

>>> import numpy
>>> numpy.float64(1.0) / 0.0
inf

もちろん、これにはNumPyが必要です。 あなたは numpy.seterr() を使って、エラー処理を細かく設定することができます。