gpt4 book ai didi

python - 如何从用 numpy 的 tofile() 编写的原始二进制文件中读取 float

转载 作者:行者123 更新时间:2023-11-28 22:55:26 28 4
gpt4 key购买 nike

我正在使用 numpy 的 tofile()float32 写入文件。

float_num = float32(3.4353)
float_num.tofile('float_test.bin')

它可以用 numpy 的 fromfile() 读取,但这不符合我的需要,我必须借助 bitstring 将其作为原始二进制文件读取> 模块。

所以我做了以下事情:

my_file = open('float_test.bin', 'rb')
raw_data = ConstBitStream(my_file)
float_num_ = raw_data.readlist('float:32')

print float_num
print float_num_

输出:

3.4353
-5.56134659129e+32

可能是什么原因?第二个输出也应该是 3.4353 或关闭。

最佳答案

问题是 numpy 的 float32 存储为小端,而位串的默认实现是 bigendian。解决方案是将小端指定为数据类型。

my_file = open('float_test.bin', 'rb')
raw_data = ConstBitStream(my_file)
float_num_ = raw_data.readlist('floatle:32')

print float_num
print float_num_

输出:

3.4353
3.43530011177

位串数据类型引用,here .

关于python - 如何从用 numpy 的 tofile() 编写的原始二进制文件中读取 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16920653/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com