有一个numpy biginteger吗?

Is there a numpy biginteger?

嗯。在我看来,似乎没有办法将 Python 的双整数存储在 numpy 数组中。是否需要做一些特别的事情来声明一个带有 bigints 的 numpy 数组?

不具体,不。您可以使用 dtype='object' 创建一个数组,它创建一个包含 Python 个对象(包括但不限于整数)的数组。这将为您提供很多类似 Numpy 数组的功能,但性能优势很少 none。

也就是说,Python 个对象的数组在内存性能方面与 Python list 没有显着差异。尽管如果你必须使用 bigints,它可能仍然比使用 list 更可取,因为你仍然可以进行元素方面的算术运算,包括在对其他 Numpy 数组进行运算时。例如:

In [1]: import numpy as np

In [2]: big = np.array([10**100, 10**101, 10**102], dtype='object')

In [3]: big
Out[3]: 
array([ 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
       100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
       1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000], dtype=object)

In [4]: big + np.array([1, 2, 3])
Out[4]: 
array([ 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,
       100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002,
       1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003], dtype=object)

虽然我自己从未使用过此功能,所以我不完全确定还会出现哪些其他令人惊讶的限制。