当你将NumPy数组写入二进制文件时遇到问题,新文件大小只有原来文件的一半,这通常是由于以下几个原因造成的:
NumPy数组是一种高效的多维数组对象,常用于科学计算。将NumPy数组写入二进制文件通常使用numpy.save
或numpy.ndarray.tofile
方法。
以下是一些解决这个问题的步骤:
确保写入文件时指定的数据类型与数组实际的数据类型一致。
import numpy as np
# 示例数组
arr = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64)
# 写入二进制文件
arr.tofile('output.bin', format='<f8') # '<f8' 表示小端字节序的64位浮点数
确保使用二进制模式打开文件。
with open('output.bin', 'wb') as f:
arr.tofile(f)
确保数组的形状在写入过程中没有发生变化。
print(arr.shape) # 确保形状正确
如果需要多次写入,确保文件指针正确重置。
with open('output.bin', 'wb') as f:
arr.tofile(f)
f.seek(0) # 重置文件指针到文件开头
以下是一个完整的示例代码,展示了如何正确地将NumPy数组写入二进制文件:
import numpy as np
# 示例数组
arr = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64)
# 写入二进制文件
with open('output.bin', 'wb') as f:
arr.tofile(f)
# 验证文件大小
import os
file_size = os.path.getsize('output.bin')
print(f"File size: {file_size} bytes")
通过以上步骤,你应该能够解决将NumPy数组写入二进制文件时文件大小不正确的问题。
领取专属 10元无门槛券
手把手带您无忧上云