如何解决为什么 numpy.dot() 对大值给出错误答案?
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
解决方法
这是一个溢出问题。
333283335000 远大于 2^31,因此您需要在 long long
numpy_result=np.dot(np.array(a,dtype=np.longlong),np.array(b,dtype=np.longlong))
333283335000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。