Это не кажется, «разрядность» (32 против 64) процессора, см комментарии на this пост, в частности:Что определяет размер int в numpy?
Хороший ответ. Как я уже упоминал в своих комментариях выше, я могу дублировать выпуск @ suzep136 на Raspberry Pi 3, в котором используется 64-разрядный процессор ARM. Любая идея, почему проблема переполнения возникла в 64-битной архитектуре? Единственное, о чем я могу думать, это то, что lapack/blas были скомпилированы для 32-битного ядра; Кажется, я установил numpy через apt-get. - nrlakin
Нор это размер междунар в C, например, на моей машине:
>>> import numpy, ctypes
>>>
>>> ctypes.sizeof(ctypes.c_int)
4
>>> numpy.array([1]).dtype
dtype('int64')
Итак, что же это зависит?
Edit: Там идет еще один кандидат, благодаря ЭВ-бр:
LAPACK использует 32-битные целые числа на всех архитектурах - эв-уш
Edit: Частичный ответ here. Спасибо, Гойо. Я скопировал это и сделал это CW, чтобы вы могли добавить более тонкие точки, например, что происходит в PyPy или Jython. Меня также интересует, есть ли какие-то более глубокие причины для этого выбора.
Вы можете проверить тип данных, который 'int' соответствует использованию' numpy.dtype (int) '. –
@EliSadoff спасибо, но это только дает мне то, что, а не почему. –
LAPACK использует 32-битные целые числа на всех архитектурах –