NumPy 字节交换
2019-02-24 10:26:23
•
阅读
打赏
在几乎所有的机器上,多字节对象都被存储为连续的字节序列。字节顺序,是跨越多字节的程序对象的存储规则。
存储在计算机内存中的数据取决于 CPU 使用的架构。 它可以是小端(最小有效位存储在最小地址中)或大端(最小有效字节存储在最大地址中)。
- 大端模式:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。
- 小端模式:指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
numpy.ndarray.byteswap()
numpy.ndarray.byteswap() 函数将 ndarray 中每个元素中的字节进行大小端模式的转换。
import numpy as np
a = np.array([1, 256, 8755], dtype=np.int16)
print('我们的数组是:')
print(a)
print('以十六进制表示内存中的数据:')
print(map(hex, a))
# byteswap() 函数通过传入 true 来原地交换
print('调用 byteswap() 函数:')
print(a.byteswap(True))
print('十六进制形式:')
print(map(hex, a))
# 我们的数组是:
# [ 1 256 8755]
# 以十六进制表示内存中的数据:
# <map object at 0x000001FADFBCB5C0>
# 调用 byteswap() 函数:
# [ 256 1 13090]
# 十六进制形式:
# <map object at 0x000001FADFDD05F8>

相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型