При использовании в качестве dtype
, np.int
эквивалентно np.int_
(размер зависит от архитектуры), что, вероятно, np.int64
.Так что np.array([n], dtype=np.int)
потерпит неудачу.Снаружи dtype
, np.int
ведет себя как Python int
.Numpy в основном помогает вам рассчитать как можно больше материала в C-land, чтобы ускорить вычисления и сохранить память;но (AFAIK) целых чисел больше 64 бит не существует в стандарте C (хотя новый GCC поддерживает их на некоторых архитектурах).Таким образом, вы застряли, используя целые числа Python, медленные, но неограниченного размера, или целые числа C, быстрые, но недостаточно большие для этого.
Существует два очевидных способа вставить большое целое число в массив numpy:
Вы можете использовать тип Python, обозначенный dtype=object
: np.array([n], dtype=object)
будет работать, но вы не получите никаких преимуществ в ускорении или памяти от numpy.
Вы можете разделить микросекундное время на второе время (n // 1000000
) и секунды (n % 1000000
), как два отдельных столбца.