我的csv文件(K2CsSb DOS135.csv)非常简单:
-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. ]
...,
我在numpy中将这个2D数组数据用于interp1d。
一切看起来都很完美。 csv文件是在WINDOWS中的MS excel中编辑的。
现在我正在使用MAC OS X并使用mac MS excel编辑此文件只剪切粘贴,不更改数据类型。然后,当我导入此文件与以前一样并打印。告诉我错误:
[-7.21 nan nan nan nan nan nan]
f = interp1d(data [:,0],data [:,1])
IndexError:数组的索引太多了
如果我添加dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',',dtype=None)
看起来很像:
(-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 :(得分:0)
找到解决方案。 在mac excel中,使用save as ...有两种类型的csv。一个是MS-DOS csv;另一个是微软csv。 选择Microsoft csv可以解决问题。