2015-05-20 99 views
2

我遇到了3.4使用numpy的麻煩。我的問題是要知道如何可以使用純字符串格式而不是字節字符串的numpy矩陣。numpy矩陣字符串與python3.4

def res(data): 
    M = np.zeros(data.shape).astype(dtype='|S20') 
    lines,columns = M.shape 
    for l in range(lines): 
     M[l][0] = data[l][1] 
     M[l][1] = data[l][2] 
     M[l][2] = data[l][3] 
    return M 
**result python2.7** 
[['Ann' '38.72' '-9.133'] 
['John' '55.68' '12.566'] 
['Richard' '52.52' '13.411'] 
['Alex' '40.42' '-3.703']] 

**result python3.4** 
[[b'Ann' b'38.72' b'-9.133'] 
[b'John' b'55.68' b'12.566'] 
[b'Richard' b'52.52' b'13.411'] 
[b'Alex' b'40.42' b'-3.703']] 

在Python3.4我怎麼能有我在普通字符串矩陣狀例如,對於python2.7這是不好的,因爲我有期望的字符串值,而不是字節串的功能分析。

任何幫助將是偉大的。謝謝

+1

通常對於2d數組,使用'M [l,0]'指數更好。至於你的問題,3.4中的基本字符串類型是unicode,而2.7中是ascii。所以出於某些目的,'b'abc'是3.4當量,但對於其他類型'str'。 – hpaulj

回答

1

在我的情況下,解決方案是簡單地將dtype('|S20')更改爲dtype(str) ..我希望這可以幫助。