对h5py格式的数据,进行增量保存,可保存任意维度的数据:
创建文件:
if not os.path.exists(self.save_path):
h5_file = h5py.File(self.save_path, "a")
para = h5_file.create_dataset("parameter", (2))
para[0] = self.data1; para[1] = self.data2 # 保存常数
h5_file.create_dataset("data", (100,10000), maxshape=(100,None), chunks=True, dtype='int32') # 保存二维矩阵
h5_file.close()
增量添加数据:
with h5py.File(self.save_path, "a") as hf:
t1 = time.time()
frame = int(self.new_data.shape[0] / self.channels)
channel_data = np.reshape(self.new_data,
int(self.new_data.shape[0]/frame), frame), "F")
hf['data'].resize((hf['data'].shape[1] + channel_data.shape[1]), axis = 1)
hf['data'][:, -channel_data.shape[1]:] = channel_data
以上即可实现增量保存数据。