在numpy矩阵中存储字符串

时间:2014-01-24 18:39:11

标签: python python-3.x numpy

我创建了以下内容:

a=np.eye(2, dtype='S17')

但是当我打印出来时,我得到了:

print(a)
[[b'1' b'']
 [b'' b'1']]

为什么会发生这种情况以及如何在没有b的情况下获取字符串?或者我应该改变引入数据的方式还是dtype

所需的输出是:

[['1' '']
 ['' '1']]

这样我就可以替换其他人

1 个答案:

答案 0 :(得分:2)

您可以使用numpy.char.decode解码字节文字:

In [1]: import numpy as np

In [2]: a = np.eye(2, dtype='S17')                                                                                   

In [3]: a
Out[3]: 
array([[b'1', b''],                                                                                                
       [b'', b'1']],                                                                                               
      dtype='|S17')                                                                                                

In [4]: np.char.decode(a, 'ascii')                                                                                 
Out[4]: 
array([['1', ''],                                                                                                  
       ['', '1']],                                                                                                 
      dtype='<U1')