更新h5py数据集

时间:2013-04-25 11:26:48

标签: python hdf5 h5py

是否有人想知道从h5py更新hdf5数据集? 假设我们创建了一个数据集,如:

import h5py
import numpy
f = h5py.File('myfile.hdf5')
dset = f.create_dataset('mydataset', data=numpy.ones((2,2),"=i4"))
new_dset_value=numpy.zeros((3,3),"=i4")

是否可以将dset扩展为3x3 numpy数组?

1 个答案:

答案 0 :(得分:14)

您需要使用“extendedable”属性创建数据集。在初始创建数据集后无法更改此设置。为此,you need to use the "maxshape" keywordNone元组中的maxshape值意味着该维度的大小可以无限制。因此,如果f是HDF5文件:

dset = f.create_dataset('mydataset', (2,2), maxshape=(None,3))

创建一个大小为(2,2)的数据集,该数据集可以沿第一维无限延伸,沿第二维延伸3。现在,您可以使用resize扩展数据集:

dset.resize((3,3))
dset[:,:] = np.zeros((3,3),"=i4")

第一个维度可以随意增加:

dset.resize((10,3))