2014-05-08 78 views
0

我想转置大约60 * 75的顺序的数据集。我在遍历矩阵时遇到了麻烦,将它转换为75 * 60的顺序。每列都会有不同类型的数据(数字,文字,混合体,网址等)。我试了下面的代码。但它只是给我第一列转置。矩阵转置不迭代

f= open('input.txt', "rb")  
fw=open("output.txt", "wb") 
l=f.read() 
for row in l: 
    print ''.join(row) 
p= [[row[i] for row in l] for i in range(75)] 
print p 

Alternaticely我试图

a = np.array(l)[np.newaxis] 
print a.T 

他们都不给我的完整的转置矩阵。

我甚至试过zip(* l)和map(zip(* l))。

我感谢您的帮助。 谢谢。

回答

3

f.read()是一个巨大的字符串,包含所有文件的内容。它不是某种结构化的数据格式;特别地,for row in l迭代原始字符而不是有用数据的行。

如果你想要更有用的东西,csv模块可能会有所帮助,或者可能类似于numpy.loadtxt,这取决于文件实际包含的格式。

+0

感谢您的回复。这就说得通了。你的意思是在f.read()之后应该有这样的事情? ll = [x.split(',')for x in l.split('\ n')]然后说出行中的ll?那实际上也不起作用。 – user3614557

+0

@ user3614557:类似的东西可能会起作用。它在很大程度上取决于数据格式。 – user2357112

+0

迭代问题仍然存在。它只是给我的头,而不是其余的数据。从某种意义上说,它将第一列转换为第一列,而忽略其余列。 – user3614557