NumPy学习第十五课:字节交换

76 阅读1分钟

前言导读

这节我们讲一讲字节交换的原理,为什么会出现字节交换这么一个概念呢?

其实呢,我们在日常的项目开发过程当中这个概念是一直存在的,只不过我们没有发现,因为底层代码已经帮我们进行了实现,因为编程时语言它应用于多平台,所以,字节交换是兼容的,我们不用考虑的问题。

所以字节交换是通常用于跨机器、跨平台处理数据时,确保数据的字节顺序正确。

NumPy库中已经将字节交换的函数进行封装完成,我们直接通过库调用字节交换函数就可以达到我们想要的结果。

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 0x104acb400>
# 调用 byteswap() 函数:
# [  256     1 13090]
# 十六进制形式:
# <map object at 0x104acb3c8>

相关参考:www.runoob.com/numpy/numpy…