2015-05-20 53 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) ..我希望这可以帮助。