2014-05-08 134 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