有大整数吗?

2024-04-28 10:46:50 发布

您现在位置:Python中文网/ 问答频道 /正文

嗯。在我看来,没有办法将Python的大整数存储在numpy数组中。有什么特别的事情要做吗,用bigint声明一个numpy数组?


Tags: numpy声明整数数组事情办法bigint
1条回答
网友
1楼 · 发布于 2024-04-28 10:46:50

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

也就是说,在内存性能方面,Python对象数组与Python没有显著的不同。不过,如果必须使用bigint,那么最好还是使用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)

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

相关问题 更多 >