numpy.core.records.fromfile

numpy.core.records.fromfile(fd, dtype=None, shape=None, offset=0, formats=None, names=None, titles=None, aligned=False, byteorder=None)

Функция core.records.fromfile() создает массив записей из двоичных данных, находящихся в файле.

Параметры:
fd - файловый объект
Объект файла, который поддерживает произвольный доступ.
dtype - тип данных NumPy (необязательный)
Определяет тип данных выходного массива.
shape - целое число, список или кортеж целых чисел
Задает размеры необходимого массива - целое число или кортеж целых чисел.
offset - целое число (необязательный)
Задает смещение с которого начинается чтение буфера.
formats - список типов данных (необязательный)
Список (не кортеж) типов данных для каждого поля (столбца), например, ['U2','i2','f4','f2']. Указание типов данных напрямую, например [int, complex, int, int, float] не поддерживается. Учитывая, что символьные форматы типов данных несколько ограничены, рекомендуется использовать определение типов через класс dtype.
names - кортеж строк (необязательный)
Определяет имя каждого поля массива записей.
titles - кортеж строк (необязательный)
Псевдонимы имен столбцов, которые могут использоваться для уточнения имен столбцов или их назначения. При этом имена и псевдонимы эквивалентны, например, если имя полей массива a ['p', 'q'], а псевдонимы полей ['p_prime', 'q-prime'], то a['p'] эквивалентно a['p_prime'].
aligned - True или False (необязательный)
Выравнивает поля в памяти так же как это делает С-компилятор. По умолчанию aligned=False.
byteorder - {‘<’, ‘>’, ‘=’} (необязательный)
Определяет порядок байтов для всех полей.
Возвращает:
результат - массив записей NumPy
Интерпретация двоичных данных в файле как массива записей.


Примеры

>>> import numpy as np
>>> 
>>> a = np.array([('x1', 1), ('x2', 2), ('x3', 3),], dtype = 'U2,f4')
>>> 
>>> a
array([('x1', 1.0), ('x2', 2.0), ('x3', 3.0)], 
      dtype=[('f0', '<U2'), ('f1', '<f4')])
>>> 
>>> a.tofile('file_name')    #  Помещаем 'a' в двоичный файл
>>> 
>>>
>>> #  Создание массива записей из данных в двоичном файле
... rec = np.core.records.fromfile('file_name', formats='U2,f4', names = 'x, n')
>>> rec
rec.array([('x1', 1.0), ('x2', 2.0), ('x3', 3.0)], 
          dtype=[('x', '<U2'), ('n', '<f4')])
>>> 
>>> rec.x
array(['x1', 'x2', 'x3'], 
      dtype='<U2')
>>> rec.n
array([ 1.,  2.,  3.], dtype=float32)