为什么 numpy.dot() 对大值给出错误答案?

时间:2021-04-04 12:17:06

标签: numpy data-science large-data dot-product

a=list(range(10000))
b=list(range(10000))

result=0
for i,j in zip(a,b):
    result+=i*j
print(result)

print()

import numpy as np

numpy_result=np.dot((np.array(a)),(np.array(b)))
print(numpy_result)

Output

333283335000

-1724114088

1 个答案:

答案 0 :(得分:0)

这是一个溢出问题。

333283335000 远大于 2^31,因此您需要在 long long

中进行操作
numpy_result=np.dot(np.array(a, dtype=np.longlong), np.array(b, dtype=np.longlong))
<块引用>

333283335000

相关问题