RuntimeWarning:在np.exp(x ** 2)中遇到溢出

AKG*_*AKG 5 python numpy exp

我需要计算exp(x**2)在哪里x = numpy.arange(30,90)。这引发了警告:

RuntimeWarning: overflow encountered in exp
inf
Run Code Online (Sandbox Code Playgroud)

我不能放心地忽略此警告,但是SymPy和mpmath都不是解决方案,我需要执行阵列操作,因此Numpy解决方案将是我的梦想。

有谁知道如何处理这个问题?

Gar*_*ees 3

您可以使用具有必要范围的数据类型,例如decimal.Decimal

>>> import numpy as np
>>> from decimal import Decimal
>>> x = np.arange(Decimal(30), Decimal(90))
>>> y = np.exp(x ** 2)
>>> y[-1]
Decimal('1.113246031563799750400684712E+3440')
Run Code Online (Sandbox Code Playgroud)

但你用这些数字做什么呢?你能避免求幂而使用对数吗?有关您的问题的更多详细信息将会有所帮助。