我是编程新手.在我最新的Python 2.7项目中,我遇到了以下内容:
RuntimeWarning: overflow encountered in long_scalars
有人可以详细说明这意味着什么以及我能做些什么来解决这个问题?
代码贯穿始终,但我不确定忽略警告是否是个好主意.
它发生在追加过程中,如:
SomeList.append(VeryLongFormula)
解决方法:
这是一个发出相同警告的示例:
import numpy as np
np.seterr(all='warn')
A = np.array([10])
a=A[-1]
a**a
产量
RuntimeWarning: overflow encountered in long_scalars
在上面的例子中,它发生是因为a是dtype int32,并且int32中可存储的maximim值是2 ** 31-1.从10 ** 10开始2 ** 32-1,取幂导致的数字大于可以存储在int32中的数字.
请注意,您不能依赖np.seterr(all =’warn’)来捕获所有溢出
numpy中的错误.例如,在32位NumPy上
>>> np.multiply.reduce(np.arange(21)+1)
-1195114496
而在64位NumPy上:
>>> np.multiply.reduce(np.arange(21)+1)
-4249290049419214848
两者都没有任何警告而失败,尽管这也是由于溢出错误造成的.正确答案是21&#x