.npy
文件是 NumPy 库用于存储数组数据的二进制格式,它包含一个描述数组结构的头部信息和实际的数据部分。直接追加数据到现有的 .npy
文件并不像文本文件那样直接,因为需要手动修改文件头部以反映新增数据后的数组尺寸,并且要确保数据正确地附加到现有数据之后。
不过,通常推荐的做法不是直接追加到现有 .npy
文件,而是采取以下步骤:
- 加载现有数据:首先使用
numpy.load()
函数加载现有的.npy
文件中的数组数据。 - 合并数据:将新数据(同样需要是 NumPy 数组)与加载的数组进行合并。如果你希望按行追加(例如,两个一维数组),可以使用
numpy.concatenate()
或numpy.vstack()
函数;如果是按列追加(对于二维数组),可以使用numpy.hstack()
或调整后使用numpy.concatenate()
。 - 保存新数据:将合并后的新数组保存到一个新的
.npy
文件中,使用numpy.save()
或numpy.savez()
函数。
这样做的原因是,.npy
文件格式设计时并未考虑简单的追加操作,直接修改文件可能破坏其内部结构。下面是示例代码:
#python
import numpy as np
# 加载现有数据
existing_data = np.load('existing_data.npy')
# 新数据,确保维度与现有数据兼容
new_data = np.array([...]) # 这里是你的新数据
# 按行追加(假设都是二维数组,且列数相同)
combined_data = np.vstack((existing_data, new_data))
# 保存到新文件
np.save('new_combined_data.npy', combined_data)
如果你确实需要保留原始文件名,并且不想每次追加都创建新文件,理论上可以通过读取并解析 .npy
文件头,手动修改形状信息,然后重新写入数据和更新的头部信息来实现追加,但这涉及到复杂的文件操作和对 .npy
格式的深入了解,通常不建议这样做,除非有特别的需求。