我需要计算exp(x**2)在哪里x = numpy.arange(30,90)。这引发了警告:
RuntimeWarning: overflow encountered in exp
inf
Run Code Online (Sandbox Code Playgroud)
我不能放心地忽略此警告,但是SymPy和mpmath都不是解决方案,我需要执行阵列操作,因此Numpy解决方案将是我的梦想。
有谁知道如何处理这个问题?
您可以使用具有必要范围的数据类型,例如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)
但你用这些数字做什么呢?你能避免求幂而使用对数吗?有关您的问题的更多详细信息将会有所帮助。
| 归档时间: |
|
| 查看次数: |
13555 次 |
| 最近记录: |