嗯。在我看来,似乎没有办法将 Python 的双整数存储在 numpy 数组中。您是否需要做一些特别的事情来声明一个带有 bigints 的 numpy 数组?
最佳答案
不具体,不。您可以使用 dtype='object'
创建一个数组,它创建一个 Python 对象数组(包括但不限于 int)。这将为您提供许多类似于 Numpy 数组的功能,但几乎没有任何性能优势。
也就是说,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)
虽然我自己从未使用过此功能,所以我不完全确定还会出现哪些其他令人惊讶的限制。
关于python - 有一个numpy biginteger吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552599/