2015-08-15 57 views
0

我的csv文件(K2CsSb DOS135.csv)是非常簡單的,如:genfromtxt進口數據

-7.21E+00 1.34E-01 
-7.16E+00 1.15E-01 
-7.13E+00 0.00E+00 
-7.10E+00 0.00E+00 
-7.07E+00 0.00E+00 

而且我用genfromtxt導入此文件,如:

dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',') 

如果我print(dosdata),它顯示我:

[[-7.21 0.134] 
[-7.16 0.115] 
[-7.13 0. ] 
..., 

我用這2D陣列數據用於numpy的interp1d。

一切都看起來很完美。 csv文件在WINDOWS的MS Excel中編輯。

現在我正在使用MAC OS X並使用mac MS excel編輯這個文件只剪切粘貼,不改變數據類型。然後當我像以前一樣導入此文件並打印。在我展示錯誤: [-7.21楠楠楠楠楠楠] F = interp1d(數據[:,0],數據[:,1]) IndexError:用於陣列 太多指數如果我加入dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',',dtype=None) 外貌是一個tur像:

(-7.21, b'1.30E-01\r-7.16E+00', b'1.20E-01\r-7.13E+00', b'0.00E+00\r-7.10E+00', b'0.00E+00\r-7.07E+00') 

爲什麼發生這種情況,以及如何解決它?

+0

我不清楚這是否可以解決您的問題,但由於您的文件不使用逗號作爲分隔符,因此不要在'genfromtxt'中使用參數'delimiter ='。 –

+0

添加此** defaultfmt =「%f」** – dsgdfg

+0

該MAC'\ r'(CR)似乎給DOS版本問題。 DOS使用(LF/CR),UNIX(LF)。我有點驚訝,'delimiter =',''起作用,因爲你沒有'''在文件中。 – hpaulj

回答

0

找到解決方案。 在mac excel中,使用另存爲...有兩種類型的csv。一個是MS-DOS csv;另一個是微軟csv。 選擇微軟的csv可以解決問題。