为什么numpy.sum不能给我正确的结果?

时间:2019-07-03 22:37:26

标签: python list numpy sum

标准python列表的总和x = list(range(100000))与相同序列x_array = np.array(x)的总和不一致。在第一种情况下,我获得sum(x)= 4999950000,这是正确的结果。使用numpy sum我得到np.sum(x_array))= 704982704。这让我感到困扰,因为我是这种语言的初学者。有人对此差异有解释吗?谢谢。代码是

import numpy as np
x=list(range(100000))
print("sum x using standard python function = ",sum(x))
x_array=np.array(x)
print("sum x using numpy =",np.sum(x_array))

1 个答案:

答案 0 :(得分:2)

您的NumPy默认为标准的32位整数; Python将根据需要切换到无限长的整数。

您被溢出/环绕咬住了。

4999950000 % (2**32)   ==>   704982704