NumPy - 字节交换

  • 简述

    我们已经看到,存储在计算机内存中的数据取决于 CPU 使用的架构。它可能是little-endian(最低有效字节存储在最小地址中)或big-endian(最小地址中的最高有效字节)。
  • numpy.ndarray.byteswap()

    numpy.ndarray.byteswap()函数在两种表示之间切换:bigendian 和 little-endian。
    
    import numpy as np 
    a = np.array([1, 256, 8755], dtype = np.int16) 
    print 'Our array is:' 
    print a  
    print 'Representation of data in memory in hexadecimal form:'  
    print map(hex,a)  
    # byteswap() function swaps in place by passing True parameter 
    print 'Applying byteswap() function:' 
    print a.byteswap(True) 
    print 'In hexadecimal form:' 
    print map(hex,a) 
    # We can see the bytes being swapped
    
    它将产生以下输出 -
    
    Our array is:
    [1 256 8755]
    Representation of data in memory in hexadecimal form:
    ['0x1', '0x100', '0x2233']
    Applying byteswap() function:
    [256 1 13090]
    In hexadecimal form:
    ['0x100', '0x1', '0x3322']