python - 有一个numpy biginteger吗?

标签 python numpy biginteger

嗯。在我看来,似乎没有办法将 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/

相关文章:

java - 求和 BigInteger 数字

c++ - 将 GMP 整数转换为以 N 为基数的整数

python - 最大和子数组 - 返回子数组和求和 - 分而治之

python - 我可以使用 Google Appengine ndb 存储带有 key_name 的 blob 吗?

python - 用相同的一维数组插入二维数组的每一行

arrays - Mathematica HDF5 和复合数组

rust - 可以将 BigInteger 截断为 Rust 中的 i32 吗?

python - timedelta float python

Python 序列化 - 为什么pickle?

python - 奇怪的行为 bool 就地操作