小编Alb*_*ang的帖子

意外的 uint64 行为 0xFFFF'FFFF'FFFF'FFFF - 1 = 0?

考虑以下展示uint64数据类型的简短 numpy 会话

import numpy as np
 
a = np.zeros(1,np.uint64)
 
a
# array([0], dtype=uint64)
 
a[0] -= 1
a
# array([18446744073709551615], dtype=uint64)
# this is 0xffff ffff ffff ffff, as expected

a[0] -= 1
a
# array([0], dtype=uint64)
# what the heck?
Run Code Online (Sandbox Code Playgroud)

我对最后的输出完全感到困惑。

我期望 0xFFFF'FFFF'FFFF'FFFE。

这里究竟发生了什么?

我的设置:

>>> sys.platform
'linux'
>>> sys.version
'3.10.5 (main, Jul 20 2022, 08:58:47) [GCC 7.5.0]'
>>> np.version.version
'1.23.1'
Run Code Online (Sandbox Code Playgroud)

python numpy uint64

45
推荐指数
2
解决办法
5224
查看次数

为什么 r_[r_] 挂起?

这一定是最短的 numpy 挂起之一。\n请不要问我到底为什么尝试这个。

\n
from numpy import r_\nr_[r_]\n
Run Code Online (Sandbox Code Playgroud)\n

在线尝试一下!

\n

这是正确的行为(如果是的话:为什么?)还是错误?

\n

python numpy

4
推荐指数
1
解决办法
100
查看次数

标签 统计

numpy ×2

python ×2

uint64 ×1