如何获得numpy dtype的字节序

时间:2018-04-09 19:40:17

标签: python numpy endianness

Determine the endianness of a numpy array

相关

给定数组

x = np.arange(3)

我可以通过

获取字节顺序
>>> x.dtype.byteorder
'='

如何判断这是大端还是小端?我希望将'<''>''|'作为输出,而不是'='

要说清楚,我并不知道信息的格式是什么。我只想知道&#34;大端&#34;,&#34;小端&#34;或者&#34;无关紧要&#34;但是我不在乎它是否是本地的&#34;或不。

2 个答案:

答案 0 :(得分:5)

可能只需查看sys.byteorder即可。即使文档中的numpy.dtype.byteorder examples使用sys.byteorder来确定原生内容。

endianness_map = {
    '>': 'big',
    '<': 'little',
    '=': sys.byteorder,
    '|': 'not applicable',
}

答案 1 :(得分:1)

你可以交换两次endianness使numpy显示真正的endianness:

dtype_nonnative = dtype.newbyteorder('S').newbyteorder('S')
dtype_nonnative.byteorder