numpy.core.records.fromrecords

numpy.core.records.fromrecords(recList, dtype=None, shape=None, formats=None, names=None, titles=None, aligned=False, byteorder=None)

Функция core.records.fromrecords() создает массив записей из списка записей.

Параметры:
recList - список записей
Список записей с одинаковым количество элементов.
dtype - тип данных NumPy (необязательный)
Определяет тип данных выходного массива.
shape - целое число, список или кортеж целых чисел
Задает размеры необходимого массива - целое число или кортеж целых чисел.
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
Массив записей сформированный из списка записей.

Замечание

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

Примеры

>>> import numpy as np
>>> 
>>> rec = np.core.records.fromrecords([('x1', 1, 'y1' ,1),
                                       ('x2', 2, 'y2', 4),
                                       ('x3', 3, 'y3', 9),
                                       ('x4', 4, 'y4', 16)],
                                       formats = ['U2', 'i2', 'U2', 'f2'],
                                       names='a, b, c, d')
>>> 
>>> rec
rec.array([('x1', 1, 'y1', 1.0), ('x2', 2, 'y2', 4.0), ('x3', 3, 'y3', 9.0),
 ('x4', 4, 'y4', 16.0)], 
          dtype=[('a', '<U2'), ('b', '<i2'), ('c', '<U2'), ('d', '<f2')])
>>> 
>>> rec[1]
('x2', 2, 'y2', 4.0)
>>> 
>>> rec[2]
('x3', 3, 'y3', 9.0)
>>> 
>>> rec.a
array(['x1', 'x2', 'x3', 'x4'], 
      dtype='<U2')
>>> 
>>> rec.b
array([1, 2, 3, 4], dtype=int16)
>>> 
>>> rec.col1
array([ 1.,  2.,  3.])
>>> 
>>> rec.col2
array(['3.14', '-', '(5+2j)'], 
      dtype='<U32')