NumPy参考 >数组对象 >数据类型对象(dtype) >numpy.dtype > numpy.dtype.newbyteorder
方法
dtype.
newbyteorder
(new_order ='S' )¶返回具有不同字节顺序的新dtype。
还在数据类型的所有字段和子数组中进行更改。
字节顺序强制;来自以下字节顺序规范的值。默认值('S')导致交换当前字节顺序。 new_order代码可以是以下任意一种:
'S'-从当前字节到相反字节序交换dtype
{'<','L'}-小尾数
{'>','B'}-大端
{'=','N'}-本机顺序
{'|','I'}-忽略(不更改字节顺序)
对于这些替代方案,代码对new_order的第一个字母进行不区分大小写的检查 。例如,'>'或'B'或'b'或'brian'中的任何一个都可以有效地指定big-endian。
给定的字节顺序更改后的新dtype对象。
笔记
还在数据类型的所有字段和子数组中进行更改。
例子
>>> 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