我的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数组数据。
一切看起来都很完美。csv文件是在WINDOWS下用MS excel编辑的
现在我使用MAC OS X和MAC MS excel编辑这个文件只有剪切粘贴,没有改变数据类型。然后当我像以前一样导入这个文件并打印。显示错误:[-7.21] [au:]F = interp1d(data[:,0], data[:,1])IndexError:数组索引太多如果我加上dosdata = genfromtxt('K2CsSb DOS135.csv',delimiter=',',dtype=None)
看起来像:
(-7.21, b'1.30E-01r-7.16E+00', b'1.20E-01r-7.13E+00', b'0.00E+00r-7.10E+00', b'0.00E+00r-7.07E+00')
为什么会发生这种情况,如何解决它?
寻找解决方案。在mac excel中,使用save as…有两种类型的csv。一个是MS-DOS csv;另一个是微软的csv。选择Microsoft csv可以解决这个问题。