2012-06-28 121 views
2

我有一個從MATLAB生成的.dat文件(帶浮點值)。我需要將它轉換爲包含與.dat文件中相同數量的行和列的數組。任何人都可以提出一種做法嗎?在我想要刪除的每行末尾有一個\n。讀入Python中的.dat文件看起來是這樣的:將.dat文件轉換爲數組

12,18\n42,17\n60,16\n86,17\n120,17\n137,12\n169,10\n189,14\n215,9\n248,11\n273,12\n301,17\n319,8\n345,17\n378,14\n403,10\n423,10\n453,18\n483,10\n507,15\n10,43\n43,44\n60,38\n96,41\n114,41\n139,41\n168,43\n189,40\n215,37\n248,45\n268,45\n301,37\n321,35\n

而且我想輸出是採用以下格式:

12,18 
42,17 
... 

其中12,4218,17是在不同的列。

+0

你能給一些示例數據?每列的列數會不同嗎? – 18bytes

+0

大概這是你以前的[問題](http://stackoverflow.com/q/11243736/623518)的後續問題。如果您發現前面這個問題的答案有幫助,那麼請不要忘記提供那些有用的答案並接受其中的一個答案。 – Chris

+0

@Chris:請注意解釋爲什麼您在輸出格式描述中將「12,18」更改爲「12,18」?這不是一回事。 – lqc

回答

1

你是什麼意思的數組?

with open('datafile','r') as f: 
    rows=[map(float,L.strip().split(',')) for L in f] # list of lists 

arr=np.array(rows) #Numpy array (assuming you `import numpy as np`) 

或者使用numpy.loadtxt

arr=np.loadtxt('datafilename',delimiter=',') 
+0

@devsundar:我編輯了這篇文章,並給出了示例數據和輸出格式。 – user1482980

+0

:我有一個額外的\ n字符,因爲上面的代碼ü建議給出一個錯誤(ValueError:無效文字爲浮動():12,18) – user1482980

+0

@ user1482980 - 對不起,我沒有意識到這是一個' csv'文件。相應更新。 (問題不是換行符,而是逗號)。 – mgilson