【问题标题】:Why doe numpy.multiply give wrong result for large integers?为什么 numpy.multiply 对大整数给出错误的结果?
【发布时间】:2020-06-18 19:08:32
【问题描述】:

为什么

np.multiply( np.array(100000) , np.array(100000) )

给出不正确的 141006540​​8 但是

100000*100000 给出10000000000 哪个是正确的?

我知道使用非整数 100000 可以,但为什么整数的乘法结果错误?

感谢您的帮助。

【问题讨论】:

    标签: python numpy integer


    【解决方案1】:

    不是np.multiply 而是np.array 给你错误的结果:你有32 位整数系统,这是一个溢出。试试:

     np.multiply( np.array(100000, dtype=np.int64) , np.array(100000, dtype=np.int64) )
    

    【讨论】:

    • 谢谢。完美的答案。我怀疑有溢出问题,但不知道如何解决。
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多