当多维数组的一维大小不固定时,如何创建 HDF5 数据集。我尝试了以下玩具代码,但似乎我在这里遗漏了一些要点。
import numpy as np
import h5py
Polyline=h5py.special_dtype(vlen=np.float32)
f=h5py.File('dataset.hdf5', mode='w')
var_features=f.create_dataset('var_features', (10,), dtype=Polyline )
features = np.empty(shape=(10,), dtype=Polyline)
for i in range(10):
a=10+i*2
features[i]=np.arange(a).reshape(a/2,2)
var_features[...]=features
print features[0].shape
print var_features[0].shape
最佳答案
这很简单,只需创建具有一个或多个 None
值的 maxsize
属性的数据集。
是这样的:
import h5py
import numpy as np
fff = h5py.File('test1.h5','w')
fff.create_dataset('test_resize',(100,100),maxshape=(None,None),chunks=(10,10))
fff['test_resize'][:] = np.random.random((100,100))
fff.flush()
fff['test_resize'].resize((150,100))
fff['test_resize'][100:150,:] = np.ones((50,100))
fff.close()
关于python - 在 Python 中创建 HDF5 数据集时如何处理可变大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198200/