我有两个字符串数组:
In [51]: r['Z']
Out[51]:
array(['0', '0', '0', ..., '0', '0', '0'],
dtype='|S1')
In [52]: r['Y']
Out[52]:
array(['X0', 'X0', 'X0', ..., 'X0', 'X1', 'X1'],
dtype='|S2')
S1和S2有什么区别?只是他们持有不同长度的条目吗?
如果我的数组有不同长度的字符串怎么办?
我在哪里可以找到所有可能的dtypes列表及其含义?
答案 0 :(得分:22)
|S1
和|S2
字符串是数据类型描述符;第一个意味着数组包含长度为1的字符串,第二个长度为2. |
管道符号为byteorder flag;在这种情况下,不需要字节顺序标志,因此它设置为|
,这意味着不适用。
答案 1 :(得分:4)
为了在numpy数组中存储可变长度的字符串,您可以将它们存储为python对象。例如:
In [456]: x=np.array(('abagd','ds','asdfasdf'),dtype=np.object_)
In [457]: x[0]
Out[457]: 'abagd'
In [459]: map(len,x)
Out[459]: [5, 2, 8]
In [460]: x[1]=='ds'
Out[460]: True
In [461]: x
Out[461]: array([abagd, ds, asdfasdf], dtype=object)
In [462]: str(x)
Out[462]: '[abagd ds asdfasdf]'
In [463]: x.tolist()
Out[463]: ['abagd', 'ds', 'asdfasdf']
In [464]: map(type,x)
Out[464]: [str, str, str]
答案 2 :(得分:2)
有关列表,请尝试以下操作:
http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
例如:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.dtype.html
|S25
表示长度为25的字符串。