我的代码中有以下内容:
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