Skip to main content
 首页 » 编程设计

python之np.exp(x) 当 x 很小时

2025年05月04日14emanlee

我尝试了以下方法:

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 获得的相同系数和指数。