Python 如何获得numpy数据类型的endianness

Python 如何获得numpy数据类型的endianness,python,numpy,endianness,Python,Numpy,Endianness,有关 给定一个数组 x = np.arange(3) 我可以通过执行以下操作获得字节顺序 >>> x.dtype.byteorder '=' 我怎样才能知道这是大的还是小的endian?我想将'或'|'作为输出,而不是'=' 说得清楚一点,我并不在乎这些信息是以什么格式提供的。我只想知道“big-endian”、“little-endian”或“uncertive”,但我不在乎它是不是“native”。可能只要检查一下就可以了。即使在文档中,也使用sys.byteorder

有关

给定一个数组

x = np.arange(3)
我可以通过执行以下操作获得字节顺序

>>> x.dtype.byteorder
'='
我怎样才能知道这是大的还是小的endian?我想将
'
'|'
作为输出,而不是
'='

说得清楚一点,我并不在乎这些信息是以什么格式提供的。我只想知道“big-endian”、“little-endian”或“uncertive”,但我不在乎它是不是“native”。

可能只要检查一下就可以了。即使在文档中,也使用
sys.byteorder
来确定什么是本机的

endianness_map = {
    '>': 'big',
    '<': 'little',
    '=': sys.byteorder,
    '|': 'not applicable',
}
endianness\u映射={
“>”:“大”,

“您可以交换两次endianness,使numpy显示真正的endianness:

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

我可能没有回答你的问题,但只要用
sys.byteorder
?也许是这个?@miradulo检查一下本机字节顺序就可以了。我想你完全理解了。我很惊讶,没有办法直接从numpy那里得到这些信息,因为numpy可能在某个时候必须访问这些信息。在这种情况下,我没有太多的信息h选择很不幸。我想的更像是
nativecode='>'如果sys.byteorder=='big'else'我想我明白为什么会发生这种情况,但说真的,whyyyyyyyyy?不如让PR向
dtype
添加属性,以始终获得
?考虑到这一点,这真是一个惊喜构造
dtype('@user2357112哪个方向的bug?显式构造的dtype应该生成显式字节顺序,或者
newbyteorder
应该在
=
{}之间切换
?@miradulo:我希望
newbyteorder
在生成的字节顺序与本机字节顺序相同时生成
'='
。(显式
dtype('