gpt4 book ai didi

python - 将python float 转换为字节

转载 作者:行者123 更新时间:2023-12-05 00:58:01 26 4
gpt4 key购买 nike

我想将 Python float 转换为字节数组,将其编码为 32 位 little-endian IEEE float ,以便将其写入二进制文件。

在 Python 3 中现代 Pythonic 的实现方式是什么?对于整数,我可以做 my_int.to_bytes(4,'little'),但没有 to_bytes 方法用于 float 。

如果我可以一次性为 numpy 数组中的每个 float 执行此操作(使用 dtype numpy.float32),那就更好了。但请注意,我需要将其作为字节数组获取,而不是立即将数组写入文件。

有一些听起来相似的问题,但它们似乎主要是关于获取十六进制数字,而不是写入二进制文件。

最佳答案

NumPy 数组带有 tobytes为您提供原始数据字节转储的方法:

arr.tobytes()

您可以指定 order 参数以对多维数组使用 C 顺序(行主要)或 F 顺序(列主要)。

由于您想将字节转储到文件中,您可能还对 tofile 感兴趣。方法,直接将字节转储到文件中:

arr.tofile(your_file)

tofile 总是使用 C 顺序。

如果您需要更改字节顺序,可以使用 byteswap方法。 (newbyteorder 有更方便的签名,但不会改变底层字节,所以不会影响 tobytes。)

import sys
if sys.byteorder=='big':
arr = arr.byteswap()
data_bytes = arr.tobytes()

关于python - 将python float 转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813707/

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