NumPy - 字节交换

我们已经看到,存储在计算机内存中的数据取决于 CPU 使用的架构。 它可以是小端(最小有效位存储在最小地址中)或大端(最小有效字节存储在最大地址中)。

numpy.ndarray.byteswap()

numpy.ndarray.byteswap()函数在两个表示:大端和小端之间切换。

  1. import numpy as np
  2. a = np.array([1, 256, 8755], dtype = np.int16)
  3. print '我们的数组是:'
  4. print a
  5. print '以十六进制表示内存中的数据:'
  6. print map(hex,a)
  7. # byteswap() 函数通过传入 true 来原地交换
  8. print '调用 byteswap() 函数:'
  9. print a.byteswap(True)
  10. print '十六进制形式:'
  11. print map(hex,a)
  12. # 我们可以看到字节已经交换了

输出如下:

  1. 我们的数组是:
  2. [1 256 8755]
  3. 以十六进制表示内存中的数据:
  4. ['0x1', '0x100', '0x2233']
  5. 调用 byteswap() 函数:
  6. [256 1 13090]
  7. 十六进制形式:
  8. ['0x100', '0x1', '0x3322']