gpt4 book ai didi

python - 加载文本文件 python 无法将字符串转换为 float

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:20 25 4
gpt4 key购买 nike

我有一个如下所示的文本文件:

(1064.2966,1898.787,1064.2986,1898.787,1064.2986,1898.785,1064.2966,1898.785)
(1061.0567,1920.3816,1065.1361,1920.2276,1065.5847,1915.9657,1065.4726,1915.2927,1061.0985,1914.3955,1058.1824,1913.9468,1055.6028,1913.9468,1051.0044,1916.19,1051.5651,1918.8817,1056.0514,1918.9939,1058.9675,1919.6668,1060.8741,1920.4519)

等(所有行的长度不同)

当我使用

np.loadtxt(文件名,dtype=float,delimiter=',')

我明白了

ValueError: could not convert string to float: (1031.4647

最佳答案

我认为 np.loadtxt 需要数字,所以它不知道如何转换以 '(' 开头的值,我认为你在这里有两个选择:

lines = []
with open('datafile') as infile:
for line in infile:
line = line.rstrip('\n')[1:-1] # this removes first and last parentheses from the line
lines.append([float(v) for v in line.split(',')])

通过这种方式,您最终得到 lines,它是值列表的列表(即 lines[0] 是第 1 行的值列表)。

另一种方法是修改数据文件以删除括号,根据您正在使用的平台,您可以通过多种方式进行此操作。

例如,在大多数 Linux 系统中,您可以按照 this answer 的方式进行操作

编辑:正如@AlexanderHuszagh 在评论部分所建议的那样,不同的系统可以使用不同的方式来表示换行符,因此更可靠的解决方案是:

lines = []
with open('datafile') as infile:
file_lines = infile.read().splitlines()
for line in file_lines:
lines.append([float(v) for v in line[1:-1].split(',')])

关于python - 加载文本文件 python 无法将字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com