我正在尝试计算两个对数值 a
和 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)
我怎样才能避免这种情况?在没有这种行为的情况下,采用两个日志的比率并转换回非日志的正确方法是什么?
最佳答案
嗯,您期望的数字太小,无法使用 float
表示。
例如,在我的系统中:
In : sys.float_info.min_exp
Out: -1021
因此,你得到 0.0
如果您只想将它与某个截止值进行比较,您仍然可以使用结果 0。在您的情况下,“真实”不可表示的数字与 0 一样好。
关于python - 在 Python 中获取 numpy/scipy 中的日志比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024055/