Ame*_*kel 1 python floating-point error-handling numpy
我试图定义一个简单的指数,无论我在指数参数中输入的数字如何,我都会得到以下结果:
FloatingPointError: underflow encountered in exp
我试图定义的数组如下:
time = np.arange(length)
window = np.exp(-(time-512)**2/1000.0)
Run Code Online (Sandbox Code Playgroud)
哪里length = 4096。我对 Python 相当缺乏经验,看到这里某处回答了类似的问题,但我并没有真正理解它。我还应该注意,此代码之前运行没有问题。
分解您为最终元素计算的内容:
temp1 = 4096 - 512
temp2 = temp1**2
temp3 = -temp2
temp4 = temp3 / 1000.0
Run Code Online (Sandbox Code Playgroud)
temp4 是 -12845.056
现在,当您尝试取该数字的自然反对数时会发生什么?numpy 中允许的浮点值范围是多少?
我相信你会发现你只是试图让它变得太小。如果这是计算中的中间结果,我建议您将该数字作为自然对数保留,直到您可以再次将其放大。或者,研究一些包以支持极值,或将所有值乘以足够大的标量以保持准确性。
| 归档时间: |
|
| 查看次数: |
7983 次 |
| 最近记录: |