numpy.core.records.fromstring

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

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

Параметры:
datastring - строка
Строка с двоичными данными.
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
Интерпретация двоичных данных в строке как массива записей.

Замечание

Двоичные данные в строке разделяются на поля в соответствии с количеством байтов отведенным под каждое поле, т.е. если формат записи определен как formats = ['i2', 'i2'], то каждые 4 байта в строке будут интерпретироваться как одна запись массива.



Примеры

>>> a = b'\x01\x00\x02\x00'
>>> np.core.records.fromstring(a, formats = ['i2', 'i2'], names = 'x, y')
rec.array([(1, 2)], 
          dtype=[('x', '<i2'), ('y', '<i2')])
>>> 
>>> a = b'\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00'
>>> 
>>> rec1 = np.core.records.fromstring(a, formats = ['i2', 'i2'], names = 'x, y')
>>> 
>>> rec1
rec.array([(1, 2), (3, 4), (5, 6)], 
          dtype=[('x', '<i2'), ('y', '<i2')])
>>> 
>>> rec2 = np.core.records.fromstring(a, formats = ['i2', 'i4'], names = 'x, y')
>>> rec2
rec.array([(1, 196610), (4, 393221)], 
          dtype=[('x', '<i2'), ('y', '<i4')])
>>>
>>> rec1.x
array([1, 3, 5], dtype=int16)
>>> 
>>> rec2.y
array([196610, 393221])