1. ホーム
  2. python

[解決済み】RuntimeWarning: ログでゼロによる除算に遭遇した

2022-01-18 18:43:16

質問

numpy.log10を使用して、確率値の配列の対数を計算しています。配列の中にいくつかのゼロがあり、私はそれを回避しようとしています。

result = numpy.where(prob > 0.0000000001, numpy.log10(prob), -10)

しかし RuntimeWarning: divide by zero encountered in log10 が表示されたので、この行が警告の原因であることは間違いないでしょう。

問題は解決したのですが、なぜこの警告が何度も出てくるのでしょうか?

どうすればいいですか?

numpy.log10(prob) のすべての要素について、底10の対数を計算します。 prob によって選択されていないものでさえも。 where . 必要であれば、ゼロを埋めるために prob10**-10 などのダミー値を使ってから対数をとると、問題が解消されます。(を計算しないようにしてください。 prob > 0.0000000001 をダミー値で使っているのですが...。)