什么决定了numpy中int的大小?

Pau*_*zer 10 python numpy

它似乎不是处理器的"位数"(32对64),特别是对这篇文章的评论:

好答案.正如我在上面的评论中提到的,我能够在使用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')
Run Code Online (Sandbox Code Playgroud)

那么,它取决于什么?

编辑:还有另一位候选人,谢谢你们:

LAPACK在所有架构上使用32位整数 - ev-br

编辑:部分答案在这里.谢谢Goyo.我已经复制了它并使其成为CW,因此您可以添加更精细的点,例如PyPy或Jython中发生的事情.我也对这个选择是否有更深层次的原因感兴趣.

Pau*_*zer 2

感谢Goyo,他太谦虚了,不敢把功劳揽在自己身上。查看他们对相关但不同问题的回答。

numpy 中的默认整数类型是numpy.int_,请务必注意尾部下划线。它默认为 C long 1