numpy.core.records.fromstring#

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

Create a record array from binary data

Note that despite the name of this function it does not accept str instances.

Parameters:
datastringbytes-like

Buffer of binary data

dtypedata-type, optional

Valid dtype for all arrays

shapeint or tuple of ints, optional

Shape of each array.

offsetint, optional

Position in the buffer to start reading from.

formats, names, titles, aligned, byteorder

If dtype is None, these arguments are passed to numpy.format_parser to construct a dtype. See that function for detailed documentation.

Returns:
np.recarray

Record array view into the data in datastring. This will be readonly if datastring is readonly.

See also

numpy.frombuffer

Examples

>>> a = b'\x01\x02\x03abc'
>>> np.core.records.fromstring(a, dtype='u1,u1,u1,S3')
rec.array([(1, 2, 3, b'abc')],
        dtype=[('f0', 'u1'), ('f1', 'u1'), ('f2', 'u1'), ('f3', 'S3')])
>>> grades_dtype = [('Name', (np.str_, 10)), ('Marks', np.float64),
...                 ('GradeLevel', np.int32)]
>>> grades_array = np.array([('Sam', 33.3, 3), ('Mike', 44.4, 5),
...                         ('Aadi', 66.6, 6)], dtype=grades_dtype)
>>> np.core.records.fromstring(grades_array.tobytes(), dtype=grades_dtype)
rec.array([('Sam', 33.3, 3), ('Mike', 44.4, 5), ('Aadi', 66.6, 6)],
        dtype=[('Name', '<U10'), ('Marks', '<f8'), ('GradeLevel', '<i4')])
>>> s = '\x01\x02\x03abc'
>>> np.core.records.fromstring(s, dtype='u1,u1,u1,S3')
Traceback (most recent call last)
   ...
TypeError: a bytes-like object is required, not 'str'