2014-01-24 165 views
1

存儲字符串創建如下:在numpy的矩陣

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

但是,當我打印,我得到:

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

它爲什麼會發生,我能做些什麼,以剛剛得到的字符串,但不b'或者我應該改變介紹數據的方式還是dtype

所需的輸出將是:

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

所以,我可以通過其他

+0

爲什麼不改變你dtype爲int – agconti

+0

因爲我想在那裏存儲字符串,所以當我創建矩陣時,我首先說出我將要放入的數據類型,然後添加它。 – Llopis

+1

http://stackoverflow.com/questions/6269765/what-does-the-b-character-do-in-front-of-a-string-literal –

回答

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') 
+2

而不是'dtype ='S17''把它改成' ' Llopis