1

a2 つのログ値の比率を計算し、bそれを非ログ値に変換しようとしています。これらは対数値であるため、比率cは次のようになります。

from numpy import *
c = a - b
# convert to non-log value
val = exp(c)

次の例を検討してください。

a = -336929.42757
b = -334216.16795

これらは対数値であるため、比率は次のようになります。

c = -2713.259620000026

次に、比率を非対数値に変換して取得します0

val = exp(c)

どうすればこれを回避できますか? 2 つのログの比率を取得し、この動作を行わずに非ログに変換する正しい方法は何ですか?

4

2 に答える 2

3

さて、あなたが期待している数値は小さすぎて を使用して表すことができませんfloat。たとえば、私のシステムでは:

In : sys.float_info.min_exp
Out: -1021

したがって、あなたは0.0を取得しています

それを何らかのカットオフ値と比較したいだけの場合でも、結果の0を使用できます。「実際の」表現できない数値は、あなたのケースでは0と同じくらい良いです。

于 2013-04-15T20:31:05.030 に答える