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

the*_*eta 16 numpy

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

6.1;6.1;7.2;8.9;5.0;
8.9;10.0;8.9;6.1;5.0;
Run Code Online (Sandbox Code Playgroud)

如果我尝试将其读取为numpy数组,np.loadtxt('test.csv', delimiter=';')我得到:

ValueError:无法将字符串转换为float:

而且不明白为什么?

wim*_*wim 22

你需要去除';'线条的尾随.

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

np.loadtxt('test.csv', delimiter=';', usecols=range(5))
Run Code Online (Sandbox Code Playgroud)

或者,使用genfromtext而不是处理缺失值

np.genfromtxt('test.csv', delimiter=';')[:,:-1]
Run Code Online (Sandbox Code Playgroud)

  • 我只是获得了一个使用`np.genfromtxt('test.csv',delimiter =';')`的提示-就像一个魅力。我一定忽略了你的最后一行 (2认同)

Roh*_*kde 6

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

Column1,Column2,Column3
5.4,2.3,2.4
6.7,3.6,9.3
Run Code Online (Sandbox Code Playgroud)

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

因此,API调用变成了

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