dtype.newbyteorder()

dtype.newbyteorder(new_order='S')

Return a new dtype with a different byte order.

Changes are also made in all fields and sub-arrays of the data type.

Parameters:

new_order : string, optional

Byte order to force; a value from the byte order specifications below. The default value (?S?) results in swapping the current byte order. new_order codes can be any of:

  • ?S? - swap dtype from current to opposite endian
  • {?<?, ?L?} - little endian
  • {?>?, ?B?} - big endian
  • {?=?, ?N?} - native order
  • {?|?, ?I?} - ignore (no change to byte order)

The code does a case-insensitive check on the first letter of new_order for these alternatives. For example, any of ?>? or ?B? or ?b? or ?brian? are valid to specify big-endian.

Returns:

new_dtype : dtype

New dtype object with the given change to the byte order.

Notes

Changes are also made in all fields and sub-arrays of the data type.

Examples

>>> import sys
>>> sys_is_le = sys.byteorder == 'little'
>>> native_code = sys_is_le and '<' or '>'
>>> swapped_code = sys_is_le and '>' or '<'
>>> native_dt = np.dtype(native_code+'i2')
>>> swapped_dt = np.dtype(swapped_code+'i2')
>>> native_dt.newbyteorder('S') == swapped_dt
True
>>> native_dt.newbyteorder() == swapped_dt
True
>>> native_dt == swapped_dt.newbyteorder('S')
True
>>> native_dt == swapped_dt.newbyteorder('=')
True
>>> native_dt == swapped_dt.newbyteorder('N')
True
>>> native_dt == native_dt.newbyteorder('|')
True
>>> np.dtype('<i2') == native_dt.newbyteorder('<')
True
>>> np.dtype('<i2') == native_dt.newbyteorder('L')
True
>>> np.dtype('>i2') == native_dt.newbyteorder('>')
True
>>> np.dtype('>i2') == native_dt.newbyteorder('B')
True
doc_NumPy
2017-01-10 18:08:30
Comments
Leave a Comment

Please login to continue.