文件输入的十六进制数据转换成numpy float16

该博客介绍了两种方法将文件中存储的十六进制数据转换为浮点数。方法一是结合`struct`和`frombuffer`,方法二是使用`np.array`的`view`功能。这两种方法都在循环中处理文件的每一行,每次截取最后四个字符(一个十六进制数),将其转换为浮点数并更新行内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 读入文件内容

a.txt中保存十六进制数据
0020
	fp    =  open("a.txt", r)
	lines =  fp.readlines()

2. 截取文件中的十六进制数据,

方法一:利用struct和frombuffer

	import struct
	for line in linel:
		while(len(line) > 3):
			shex0 = line[-4:]
			bhex0= struct.pack("H", int(shex0,16)) #按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)
			fhex0 = np.frombuffer(bhex0, dtype=np.float16)[0] #将字节流字符串转换成numpy float16数据类型
			line = line[:-4]

方法二: 直接利用np.array view

	import struct
	for line in linel:
		while(len(line) > 3):
			shex1 = line[-4:]
			fhex1 = np.array(int(shex1, 16), dtype='int16').view(np.float16)
			line = line[:-4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值