numpy.loadtxt,ValueError:无法将字符串转换为浮点

numpy.loadtxt,ValueError:无法将字符串转换为浮点,numpy,Numpy,这是来自大型csv文件的示例: 6.1;6.1;7.2;8.9;5.0; 8.9;10.0;8.9;6.1;5.0; 如果我尝试使用np.loadtxt('test.csv',delimiter=';')将其读取到numpy数组中 ValueError:无法将字符串转换为浮点: 而且不明白为什么?您需要去掉尾随的;'从行中删除 如果您知道自己有5列,可能的解决方法是: np.loadtxt('test.csv', delimiter=';', usecols=range(5)) 或者,使用处

这是来自大型csv文件的示例:

6.1;6.1;7.2;8.9;5.0;
8.9;10.0;8.9;6.1;5.0;
如果我尝试使用
np.loadtxt('test.csv',delimiter=';')将其读取到numpy数组中

ValueError:无法将字符串转换为浮点:


而且不明白为什么?

您需要去掉尾随的
;'从行中删除

如果您知道自己有5列,可能的解决方法是:

np.loadtxt('test.csv', delimiter=';', usecols=range(5))
或者,使用处理缺失值的
genfromtext

np.genfromtxt('test.csv', delimiter=';')[:,:-1]

所以在我的例子中,csv文件的列名写在第一行。e、 g

Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3
因此,正如中所给出的,我所要做的就是使用skiprows参数

所以API调用变成了


np.loadtxt('test.csv',delimiter=',skiprows=1)

你是对的,但我不能去掉尾随
用于某些行,因为缺少值。如果行以
结尾,则使用
usecols=range(5)
(即缺少最后一个值)再次出现错误,可能我应该使用其他模块读取CSV。我现在尝试了
pandas
,它读起来就像任何人期望的一样,但是OTOH我不想加载巨大的包只是为了将CSV读取到数组,并且不再使用它…不,我认为numpy是一个不错的选择,有
CSV
模块,但它更多用于字符串。我刚刚得到了一个使用
np.genfromtxt的技巧('test.csv',delimiter=';')
相反,它的作用就像一个符咒。我一定是忽略了你在Windows下的最后一行。我对没有ANSI编码的文件有问题