我读过有关双标量的内容,但部分理解。据我了解,这是Numpy可以计算的范围。这就是为什么大多数问题都集中在被零除的原因(这是一个错误,因为答案将超出范围(无穷大))。

但是我不确定我的理解是正确的。另外,我看不到double_scalars中遇到有关RuntimeWarning:overflow的其他原因。什么会导致双标量中遇到溢出?

最佳答案

溢出错误表示操作产生的值超出为相应数据类型定义的范围。对于numpy double,该范围是(-1.79769313486e+308, 1.79769313486e+308)。另外,为了进行良好的讨论,请read this SO post

例:

import numpy as np
np.seterr(all='warn')
print "Range of numpy double:", np.finfo(np.double).min, np.finfo(np.double).max
A = np.array([143],dtype='double')
a=A[-1]
print "At the border:", a**a
B = np.array([144],dtype='double')
b=B[-1]
print "Blowing out of range:", b**b


输出:

Range of numpy double: -1.79769313486e+308 1.79769313486e+308
At the border: 1.6332525973e+308
Blowing out of range: inf
D:\anaconda\lib\site-packages\ipykernel\__main__.py:9: RuntimeWarning: overflow encountered in double_scalars

关于python - 除了被零除,double_scalars中遇到溢出的原因是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43405777/

10-12 21:22