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
- Интерпретация двоичных данных в файле как массива записей.
Смотрите так же:
core.records.array
,
core.records.fromstring
,
core.records.fromarrays
,
core.records.fromrecords
Примеры
>>> 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)