【发布时间】:2017-06-06 13:42:00
【问题描述】:
这似乎不是处理器的“位数”(32 对 64),请参阅this 帖子上的 cmets,特别是:
很好的答案。正如我在上面的 cmets 中提到的,我可以在使用 64 位 ARM 处理器的 Raspberry Pi 3 上复制 @suzep136 的问题。知道为什么在 64 位架构上会出现溢出问题吗?我唯一能想到的是 lapack/blas 是为 32 位内核编译的;我想我是通过 apt-get 安装 numpy 的。 ——nrlakin
也不是 C 中 int 的大小,例如在我的机器上:
>>> import numpy, ctypes
>>>
>>> ctypes.sizeof(ctypes.c_int)
4
>>> numpy.array([1]).dtype
dtype('int64')
那么,它取决于什么?
编辑:还有另一位候选人,谢谢 ev-br:
LAPACK 在所有架构上都使用 32 位整数 – ev-br
编辑:部分答案是here。谢谢高约。 我已将其复制并制作为CW,因此您可以添加更精细的点,例如PyPy 或Jython 中发生的情况。我也很想知道这种选择是否有更深层次的原因。
【问题讨论】:
-
可以使用
numpy.dtype(int)查看int对应的数据类型。 -
@EliSadoff 谢谢,但这只会告诉我什么,而不是为什么。
-
LAPACK 在所有架构上都使用 32 位整数
-
@ev-br 很有趣。也许您可以将您的评论复制到链接的帖子中,以便 nrlakin 看到它?