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

numpy.loadtxt, ValueError: could not convert string to float

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

1
2
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: could not convert string to float:

不明白为什么?


您需要从行中删除结尾的';'

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

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

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

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


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

1
2
3
Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3

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

因此API调用变为

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