I have two arrays of strings:
In [51]: r[\'Z\']
Out[51]:
array([\'0\', \'0\', \'0\', ..., \'0\', \'0\', \'0\'],
dtype=\'|S1\')
In [52]: r[\'Y\']
For storing strings of variable length in a numpy array you could store them as python objects. For example:
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]
See the dtypes documentation.
The |S1
and |S2
strings are data type descriptors; the first means the array holds strings of length 1, the second of length 2. The |
pipe symbol is the byteorder flag; in this case there is no byte order flag needed, so it's set to |
, meaning not applicable.