我创建了一个包含5000个组的hdf5文件,每个组包含1000个带h5py的数据集。数据集是1-D整数数组,平均约10,000个元素,但这可能因数据集到数据集而异。创建的数据集没有分块存储选项。数据集的总大小为281 GB。我想遍历所有数据集以创建将数据集名称映射到数据集长度的字典。我稍后会在算法中使用这个字典。
这是我尝试过的。
import h5py
f = h5py.File('/my/path/to/database.hdf5', 'r')
lens = {}
for group in f.itervalues():
for dataset in group.itervalues():
lens[dataset.name] = dataset.len()
这对我的目的来说太慢了,我正在寻找加快这个程序的方法。我知道可以将操作与h5py并行化,但是想要在走这条路之前看看是否还有其他方法。我愿意重新创建具有不同选项/结构的数据库,如果它能加快速度的话。