Python/Numpy:Numpy Unicode 数组可以有多大?

问题描述

Numpy Unicode 数组可以有多大?

dtype = 'U100','U1000','U1000000' ?

我找不到任何有关文档最大值的参考。

解决方法

我在 https://numpy.org/doc/stable/reference/arrays.dtypes.html 中找到了这一行:

总 dtype itemsize 限制为 ctypes.c_int

对于 32 位有符号整数,这将是 2,147,483,647。但实际上,项目的字节大小也是有限的,所以除以 4(Unicode 代码点大小)是 2147483647 // 4 或 536,870,911。

>>> import numpy as np
>>> np.array(['abcdef'],dtype='U536870911')
array(['abcdef'],dtype='<U536870911')
>>> np.array(['abcdef'],dtype='U536870911').itemsize
2147483644

还有:

dtype.itemsize

此数据类型对象的元素大小。

对于 21 种类型中的 18 种,此数字由数据类型固定。对于灵活的数据类型,这个数字可以是任何。