NumPy的string
数据类型似乎与Python的str
相对应,因此在Python 2.x和3.x之间变化:
在Python2.7中:
In [1]: import numpy as np
In [2]: np.dtype((np.str_, 1)).itemsize
Out[2]: 1
In [3]: np.dtype((np.unicode_, 1)).itemsize
Out[3]: 4
在Python3.3中:
In [2]: np.dtype((np.str_, 1)).itemsize
Out[2]: 4
在这两种情况下,NumPy的版本都是1.7.0。
我正在编写一些代码,我想在这两个Python版本上工作,我想要一个ASCII字符串数组(4倍的内存开销是不可接受的)。所以问题是:
ascii_uppercase
,并为每个字符节省一点或两点?我认为可能的答案是第一个问题的字符数组(即使用字符数组而不是字符串数组)。似乎我可以在构造项目时指定项目大小:
chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0,
strides=None, order=None)
更新:不,itemsize
实际上是字符数。但仍然有unicode=False
。
这条路可以走吗?
它也能回答最后一个问题吗?
我该如何使用它作为dtype
?
您可以使用'S'typestr:
同样在2.6/2.7中,
str
被别名为bytes
(或np.bytes_
):支持
b''
文本:相关问题 更多 >
编程相关推荐