Чтение чисел из отформатированного файла в Python - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть файл с k столбцами чисел (одинаковое количество элементов для каждого столбца).Какой самый быстрый способ прочитать его и сохранить числа в каждом столбце в отдельном numpy.array?

Ответы [ 3 ]

3 голосов
/ 16 февраля 2012

Попробуйте использовать genfromtxt.

Преимущество заключается в том, что вы можете указывать имена столбцов, если хотите, или даже читать в recarray.

Я сделал файл 'tmp':

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

Тогда из NumPy:

import numpy as np
data = np.genfromtxt('tmp')
#array([[  1.,   2.,   3.,   4.,   5.],
#       [  6.,   7.,   8.,   9.,  10.],
#       [ 11.,  12.,  13.,  14.,  15.]])

Если вы посмотрите на help(np.genfromtxt), вы увидите, что есть различные опции, такие как указание пользовательских dtype s (так что вы можете сделать повторный массив, если хотите), установка параметров для пропущенных значений, чтение в именах столбцов и т. Д.

2 голосов
/ 16 февраля 2012
>>> import numpy as np
>>> a = np.loadtxt('yourfile.txt')
>>> print a
[[  1.   2.   3.   4.   5.]
 [  6.   7.   8.   9.  10.]
 [ 11.  12.  13.  14.  15.]]
>>> columns = dict(enumerate(a.T))
>>> columns[0]
array([  1.,   6.,  11.])
>>> columns[1]
array([  2.,   7.,  12.])
0 голосов
/ 16 февраля 2012

open () возвращает объект файла и чаще всего используется с двумя аргументами: open (имя файла, режим).

f = open ('/ tmp /рабочий файл ',' w ') print f

Первый аргумент - это строка, содержащая имя файла.Второй аргумент - это другая строка, содержащая несколько символов, описывающих способ использования файла.режим может быть «r», когда файл будет только читаться, «w» - только для записи (существующий файл с тем же именем будет удален), а «a» открывает файл для добавления;любые данные, записанные в файл, автоматически добавляются в конец.«r +» открывает файл для чтения и записи.Аргумент mode является необязательным;'r' будет использоваться, если он пропущен.

В Windows добавленный к режиму 'b' открывает файл в двоичном режиме, поэтому существуют также режимы, такие как 'rb', 'wb' и 'r+ Ь».Python в Windows делает различие между текстовыми и двоичными файлами;символы конца строки в текстовых файлах автоматически слегка изменяются при чтении или записи данных.Это закулисное изменение данных файла подходит для текстовых файлов ASCII, но оно повредит двоичные данные, подобные этим в файлах JPEG или EXE.Будьте очень осторожны, используя двоичный режим при чтении и записи таких файлов.В Unix не помешает добавить 'b' в режим, так что вы можете использовать его независимо от платформы для всех двоичных файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...