dtypes. Difference between S1 and S2 in Python

后端 未结 2 1916
[愿得一人]
[愿得一人] 2020-12-03 10:43

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\']             


        
相关标签:
2条回答
  • 2020-12-03 11:26

    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]
    
    0 讨论(0)
  • 2020-12-03 11:31

    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.

    0 讨论(0)
提交回复
热议问题