考虑以下展示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) 这一定是最短的 numpy 挂起之一。\n请不要问我到底为什么尝试这个。
\nfrom numpy import r_\nr_[r_]\nRun Code Online (Sandbox Code Playgroud)\n\n这是正确的行为(如果是的话:为什么?)还是错误?
\n