Читать в строках из строки текста как отдельные массивы

У меня есть текстовый файл, содержащий строки строк, которые напоминают формат массива. Первоначально у меня был список массивов numpy, и я прочитал их в файл, например, где каждый массив составляет около 5 операций с плавающей запятой:

import numpy as np
parameters = [np.array(...), np.array(...), ...]
with open('params.txt', 'w') as f:
   for param in parameters:
       f.write(str(param)+'\n')

Теперь я хотел бы зачитать их обратно, как список отдельных массивов. У меня проблемы с этим, однако - вот что я пытаюсь сделать:

parameters = []
with open('params.txt', 'r') as f:
    for line in f:
        parameters.append(np.array(line))

Но теперь, когда я позже попытаюсь проиндексировать элементы в этих массивах и использовать понимание списка, например: [params[2] for params in parameters]Я получаю эту ошибку: IndexError: too many indices for array,

Я также попытался прочитать их с line.split(','), но это не дало мне то, что я хотел, а просто испортило форматирование дальше. Как я могу сделать это?

Формат моего текстового файла:

[242.1383, 131.087, 1590.853, 1306.09, 783.979]
[7917.102, 98.12, 21.43, 13.1383, 6541.33]
[823.74, 51.31, 9622.434, 974.11, 980.177]
...

Что я хочу:

parameters = [np.array([242.1383, 131.087, 1590.853, 1306.09, 783.979]), np.array([7917.102, 98.12, 21.43, 13.1383, 6541.33]), np.array([823.74, 51.31, 9622.434, 974.11, 980.177]), ...]

2 ответа

Решение

Я нашел немного более простой способ сделать это, не беспокоясь о разборе всех строк, используя regex:

import re
parameters = []
with open('params.txt', 'r') as f:
    for line in f:
        set = [float(value) for value in re.findall('\d+\.?\d*', line)]
        parameters.append(np.array(set))

Ты ищешь что-то подобное?

parameters = []
for line in f.readlines():
    y = [value for value in line.split()]
    parameter.append( y )

было бы проще, если бы я знал, как выглядит текстовый файл, если бы показывал формат текстового файла, из которого вы пытаетесь прочитать

Другие вопросы по тегам