是否有人想知道从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数组?
答案 0 :(得分:14)
您需要使用“extendedable”属性创建数据集。在初始创建数据集后无法更改此设置。为此,you need to use the "maxshape" keyword。 None
元组中的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))