NumPy genfromtxt для разных размеров столбцов
Я пытаюсь извлечь значения из текстового файла с помощью метода numpy.genfromtxt(). Мой текстовый файл выглядит так:
'! dt tot nsave readext\n',
' 0.002 200 500 F\n',
'!----------------------------------------------------------------------\n',
'! xdomain ydomain \n',
' 7.5 7.5\n',
'!----------------------------------------------------------------------\n',
'! maxnewts maxiters atol\n',
' 40 100 0.001\n',
'!----------------------------------------------------------------------\n',
'! p \n',
' 600 \n',
Но используя numpy.genfromtxt("file.txt", comments='!')
дает мне:
Line #4 (got 2 columns instead of 4)
Line #7 (got 3 columns instead of 4)
Line #10 (got 1 columns instead of 4)
Как я могу сделать numpy.genfromtxt
гибкий размер столбца?
1 ответ
Решение
Кажется, что текстовый файл не в нужном формате для анализа. Я бы предложил использовать csv
чтобы получить то, что вам нужно из файла, а затем выполнить обработку с numpy
import csv
clean_vars = []
with open('foo.txt', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=' ', quotechar=",")
for row in reader:
# clean up your file here and append it to the list
clean_vars.append([char for char in row if char])
# do your processing with numpy with your clean vars
В приведенном выше примере я неэффективно очищаю вары в качестве примера. Документы для CSV можно найти по адресу https://docs.python.org/2/library/csv.html