Skip to main content
`Ctrl`+`K`

# numpy.rec.format_parser

class numpy.rec.format_parser(formats, names, titles, aligned=False, byteorder=None)

  Class to convert formats, names, titles description to a dtype.

  After constructing the format_parser object, the dtype attribute is the converted data-type: `dtype = format_parser(formats, names, titles).dtype`

  Parameters:
    formats str or list of str

      The format description, either specified as a string with comma-separated format descriptions in the form `'f8, i4, S5'`, or a list of format description strings in the form `['f8', 'i4', 'S5']`.

    names str or list/tuple of str

      The field names, either specified as a comma-separated string in the form `'col1, col2, col3'`, or as a list or tuple of strings in the form `['col1', 'col2', 'col3']`. An empty list can be used, in that case default field names (‘f0’, ‘f1’, …) are used.

    titles sequence

      Sequence of title strings. An empty list can be used to leave titles out.

    aligned bool, optional

      If True, align the fields by padding as the C-compiler would. Default is False.

    byteorder str, optional

      If specified, all the fields will be changed to the provided byte-order. Otherwise, the default byte-order is used. For all available string specifiers, see dtype.newbyteorder.

  Attributes:
    dtype dtype

      The converted data-type.

  See also

  `numpy.dtype`, `numpy.typename`

  Examples

      >>> import numpy as np
      >>> np.rec.format_parser(['<f8', '<i4'], ['col1', 'col2'],
      ...                      ['T1', 'T2']).dtype
      dtype([(('T1', 'col1'), '<f8'), (('T2', 'col2'), '<i4')])

  names and/or titles can be empty lists. If titles is an empty list, titles will simply not appear. If names is empty, default field names will be used.

      >>> np.rec.format_parser(['f8', 'i4', 'a5'], ['col1', 'col2', 'col3'],
      ...                      []).dtype
      dtype([('col1', '<f8'), ('col2', '<i4'), ('col3', '<S5')])
      >>> np.rec.format_parser(['<f8', '<i4', '<a5'], [], []).dtype
      dtype([('f0', '<f8'), ('f1', '<i4'), ('f2', 'S5')])