gpt4 book ai didi

python - Python的幂运算符**的一个bug?

转载 作者:行者123 更新时间:2023-11-28 19:47:32 24 4
gpt4 key购买 nike

来自以下代码:

import numpy as np

print 2**np.array([32, 33])

我得到负数 [-2147483648 -2147483648]。我正在使用 python 2.6。这是某种错误吗?相反 print 2**32 给出正确答案 4294967296

最佳答案

这些值太大而无法存储在 numpy 默认使用的 32 位 int 中。如果将数据类型设置为 float(或 64 位 int),您将获得正确的结果:

import numpy as np

print 2 ** np.array([32, 33], dtype=np.float)
# [ 4.2946730e+09 8.58993459e+09 ]

print 2 ** np.array([32, 33], dtype=np.int64) # 64-bit int as suggested by PM 2Ring
# [ 4294967296 8589934592]

关于python - Python的幂运算符**的一个bug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com