有一个numpy biginteger?

Jas*_*n S 10 python numpy biginteger

嗯.我似乎没有办法将Python的大整数存储在一个numpy数组中.你需要做些什么特别的事情来声明一个带有bigint的numpy数组吗?

Igu*_*aut 16

没有具体,没有.您可以创建一个数组dtype='object',它创建一个Python对象数组(包括但不限于int).这将为您提供许多类似Numpy阵列的功能,但几乎没有任何性能优势.

也就是说,list在内存性能方面,Python对象数组与Python没有显着差异.虽然如果你必须使用bigint,那么使用a仍然是可取的,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)
Run Code Online (Sandbox Code Playgroud)

我自己从未使用过这种功能,所以我不完全确定可能会出现其他令人惊讶的限制.

  • 顺便说一句,我一直在考虑向 Numpy 添加一个基于 GMP 的大整数类型。我没有足够的个人动机去做这件事,但我认为它可能有用。 (6认同)
  • 似乎工作正常。我使用填充了整数的 `numpy` 矩阵计算斐波那契数,一切正常,包括像 `dot` 和 `matrix_power` 这样的操作。 (2认同)