我使用 h5py 创建了一个包含 5000 个组的 hdf5 文件,每个组包含 1000 个数据集。数据集是一维整数数组,平均大约有 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()
Run Code Online (Sandbox Code Playgroud)
这对于我的目的来说太慢了,我正在寻找加快此过程的方法。我知道可以使用 h5py 并行操作,但想看看在走这条路之前是否有另一种方法。如果可以加快速度,我愿意使用不同的选项/结构重新创建数据库。