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

时间:2013-05-24 06:53:06

标签: 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:无法将字符串转换为float:

并且不明白为什么?

2 个答案:

答案 0 :(得分:17)

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

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

np.loadtxt('test.csv', delimiter=';', usecols=range(5))

或者,使用genfromtext代替处理缺失值

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

答案 1 :(得分:4)

因此,在我的情况下,csv文件的第一行写有列名。例如

Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3

因此,如docs中所述,我所要做的就是使用 skiprows 参数

因此,API调用变成了

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