numpy.dtype.newbyteorder

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.dtype.newbyteorder.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

dtype.newbyteorder(new_order='S')

返回一个具有不同字节顺序的新dtype。

还在数据类型的所有字段和子数组中进行更改。

参数:

new_order:string,可选

字节命令强制;下面的字节顺序规范中的值。默认值('S')导致交换当前字节顺序。new_order代码可以是以下任何一种:

  • 's' - 将dtype从当前值切换到对端字节序
  • {'
  • {'>','B'} - big endian
  • {'=','N'} - 本地顺序
  • {'|','I'} - 忽略(字节顺序没有改变)

对于这些备选项,代码对new_order的第一个字母执行不区分大小写的检查。例如,'>'或'B'或'b'或'brian'中的任何一个都有效以指定big-endian。

返回:

new_dtype:dtype

新的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