如何将二维numpy ndarray存储为无头部的float32原始二进制文件?
如何将二维numpy ndarray存储为指定格式的原始二进制文件
要实现行优先顺序、无填充、无头部的float32原始二进制存储,可以直接使用numpy的ndarray.tofile()方法,步骤如下:
确保数组是float32类型
如果你的数组不是float32格式,先通过astype()转换:arr = arr.astype(np.float32)调用
tofile()写入文件
直接调用不带format参数的tofile(),它会以原始二进制格式写入,默认遵循numpy的C顺序(行优先),且不会添加任何头部、填充信息:arr.tofile("your_output_file.bin")
完整示例
import numpy as np # 创建二维示例数组 original_arr = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]]) # 转换为float32类型 float32_arr = original_arr.astype(np.float32) # 写入原始二进制文件 float32_arr.tofile("raw_float32_data.bin") # 可选:读取文件验证正确性 loaded_arr = np.fromfile("raw_float32_data.bin", dtype=np.float32).reshape(2, 3) print(loaded_arr) # 输出: # [[0.1 0.2 0.3] # [0.4 0.5 0.6]]
关键说明
tofile()无format参数时,默认输出原始二进制,而非文本格式;- numpy数组默认采用C顺序(行优先)存储,因此
tofile()会按行优先顺序写入数据; - 写入的文件没有任何头部信息或额外填充,完全是连续的float32二进制字节流。
内容的提问来源于stack exchange,提问作者tmlen
相关产品推荐
相关产品推荐

