问题描述
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
还有:
此数据类型对象的元素大小。
对于 21 种类型中的 18 种,此数字由数据类型固定。对于灵活的数据类型,这个数字可以是任何。