gpt4 book ai didi

python - 字符串列表转换为浮点Python

转载 作者:行者123 更新时间:2023-11-30 09:33:05 25 4
gpt4 key购买 nike

我有一个文件,其中包含代表向量的数字行。我正在尝试将其转换为 float 列表列表。现在,我的问题是它只需要每行的第一行。我尝试循环每个索引,但遇到“无法将字符串转换为 float ”的错误

这是我的代码:

with open(input_file) as f:
content = f.readlines()
content = [x.strip() for x in content]
input_val_arr = list(map(float, [i.split(' ', 1)[0] for i in content]))

输入格式:

0.03518 -0.02543 ... (dim = 100)

0.0025865 -0.01867 ....

...

(dim = ALOT)

期望输出:

[[ 0.03518 , -0.02543 ...]

[0.0025865 -0.01867 ...]

...

]]

我尝试将代码更改为:

with open(input_file) as f:
content = f.readlines()
input_val_arr = []
for index in range(x_dim):
temp_list = list(map(float, [i.split(' ', 1)[index] for i in content]))
input_val_arr.append(temp_list)

我收到以下错误:ValueError:无法将字符串转换为 float :'-0.02543 0.0025865 ...'

最佳答案

使用正则表达式从文件中提取所有 float 。然后使用map将其转换为float对象。

例如:

import re
res = []
with open(filename, "r") as infile:
for line in infile.readlines():
data = re.findall("-?\d+\.\d+", line)
if data:
floatData = list(map(float, data))
res.append(floatData)
print(res)

输出:

[[0.03518, -0.02543], [0.0025865, -0.01867]]

关于python - 字符串列表转换为浮点Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838384/

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