【发布时间】:2021-06-08 17:33:50
【问题描述】:
一个 Numpy Unicode 数组可以有多大?
dtype = 'U100', 'U1000', 'U1000000'?
我找不到任何关于文档最大值的参考。
【问题讨论】:
-
您是在问“Unicode 数组可以有多大?”或者您是在问“我可以在 Unicode 类型中存储的最大代码点是多少?Numpy 的 Unicode 类型是 Python 的字符串类型。它可以表示 Unicode 中的任何内容。它上升到 U+10FFFF。
-
我认为问题是“Unicode 数组的元素可以有多大?”
-
numpy不适用于大字符串。nbtyes对于np.zeros((1000,), dtype='U500')将是 1000*500*4,无论实际字符串如何。 -
repeat和tile等函数不会更改dtype,也不依赖于dtype详细信息(每个元素的字节数除外)。因此,无论 dtype 是数字还是“U1000”,它们的行为都是相同的。但正如您在另一个问题中发现的那样,最好使用列表和 Python 字符串将元素连接成更大的字符串。 -
@CraigNathan 太复杂了。 Python
str对象有很多开销。但是,可以实习 Python 字符串,如果您有很多潜在的重复,这将非常有效。由于本质上是神秘的各种优化,运行时可能会实习它们。但一般来说,使用sys.getsize,你应该会有一个想法,考虑到如果你想要Udtype,你必须使用最大可能的大小