NumPy 字节交换
我们已经看到,存储在计算机内存中的数据取决于 CPU 使用的架构,它可能是 little-endian(最低有效存储在最小地址中)或 big-endian(最高有效字节存储在最小地址中)。
numpy.ndarray.byteswap()
numpy.ndarray.byteswap()函数在两种表示之间切换:big-endian 和 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']