Math in python - преобразование файлов данных в матрицы - PullRequest
1 голос
/ 26 июня 2010

Сегодня, когда я пытался собрать скрипт в Octave, я подумал, что это может быть проще в python. Действительно, математические операторы списков очень просты, но загрузка файла в формате не так проста. Тогда я подумал, что это, вероятно, я просто не знаком с модулем, чтобы сделать это!

Итак, у меня есть типичный файл данных с четырьмя столбцами чисел. Я хотел бы загрузить каждый столбец в отдельные списки. Есть модуль, который я должен использовать, чтобы сделать это проще?

Ответы [ 4 ]

2 голосов
/ 26 июня 2010

Для быстрых вычислений с матрицами вы должны попробовать Numpy , он имеет некоторые функции для загрузки данных из файлов .

1 голос
/ 26 июня 2010

Если вы имеете дело с двумерными данными или чрезвычайно длинными списками, Numpy - это путь, но если вы не хотите заниматься ужасно сложной математикой, вы можете обойтись обычнымPython.

>>> table = []
>>> a = "32 42 63 1123"
>>> table.append(a.split(" ")) # this would be some loop where you file.readline()...
>>> table.append(a.split(" "))
>>> table.append(a.split(" "))
>>> table.append(a.split(" "))
>>> table
[['32', '42', '63', '1123'], ['32', '42', '63', '1123'],
['32', '42', '63', '1123'], ['32', '42', '63', '1123']]
>>> zip(*table) # this "transposes" the list of lists
[('32', '32', '32', '32'), ('42', '42', '42', '42'), 
('63', '63', '63', '63'), ('1123', '1123', '1123', '1123')]
>>>
1 голос
/ 26 июня 2010

Я не знаю, применимо ли это к вашей проблеме, но вы можете попробовать его с numpy, особенно с функциями loadtxt и savetxt.Затем вы должны использовать только numpy массивы и избегать списков Python, так как они не подходят для численных расчетов.

0 голосов
/ 26 июня 2010

Самый простой способ заставить Numpy работать - это скачать Enthought Python Distribution. Это особенно актуально для Mac, поскольку установка numpy, scipy, ... с нуля потребует много усилий.

Для загрузки и сохранения некоторых файлов, таких как:

# This is some comment
1 2 3 
4 5 6
7 8 9

Вы делаете

import numpy as np
data = np.loadtxt(input_filename, comment='#')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...