如何修复在python中转换字符串为浮点数的错误?



我的代码中有以下内容:

import numpy as np
b=np.loadtxt("abc.xyz")

我的美国广播公司。Xyz文件如下所示:

A 1.0400000 0.0620770 0.0479419
A 2.0060000 2.4675657 -0.0229796
A 3.0700000 0.0490902 1.5524933
B 4.0090000 2.4494762 1.4444613
A 2.0040000 1.2139214 3.1270965

我一直得到这个错误:

ValueError: could not convert string to float: 'A'

如何解决这个问题?提前谢谢你。

使用pandas并删除第一列

data = pandas.read_csv("abc.xyz",sep=" ")
data = data.drop(data.columns[0], axis=1)

根据numpy的文档,您希望获取没有带有字母的额外列的数据,(如果不是,那是完全不同的情况),为此,您可以使用参数usecols如下:

b=np.loadtxt("abc.xyz",usecols = (1,2,3))

获取更多信息的文档链接:

https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html

试试这样:

b = np.loadtxt("abc.xyz", dtype=float)

另外:

b = np.matrix(b, dtype=float)

希望这些对你有用。

您的问题是第一列包含字母,而您只想要数字。因此,看起来您想要跳过第一列,因为它与您的数学无关,也不能有效地转换为数值:查看https://likegeeks.com/numpy-loadtxt-tutorial/#Ignoring_the_first_column