我尝试了以下方法:
import numpy as np
x = -1.20831312e+05
print np.exp(x) # answer: x = 0.0
print np.expm1(x) # answer: x = -1.0
根据 Wolfram,它应该是 4.24578... × 10^-52477。我怎样才能解决这个问题?我需要比较 np.exp(x) 以获得较小的 x 值。
请您参考如下方法:
您将不得不使用对数刻度。正如@norrius 所建议的,您可以简单地使用 x,但如果您想将其转换为科学记数法,请尝试以下操作:
def exp_to_sci(x):
coeff, exp = np.modf(x / np.log(10.0))
return 10**(coeff + 1), exp - 1
如果你在你的例子中尝试它,你会得到:
>>> exp_to_sci(-1.20831312e+05)
(4.2457778774122303, -52477.0)
它们是您从 Wolfram 获得的相同系数和指数。
