这是我所遇问题的必需版本:
我有一个包含许多(可能是数百万)数据集的文件,所有这些数据集都在同一个组中,如下所示:
" /组" + Dataset0001 [双数组2到3维和大量数据] + Dataset0002 + Dataset0003 + ... + DatasetXXXX
数据集被分块并写入循环中,该循环在每次迭代期间仅知道每个数据集的切片。因此,在每次迭代时,所有数据集都会发生不完整的写入。这意味着我必须使用数据集的名称形成字符串,并告诉HDF5查找它并获取句柄,以便我可以写入它。
这很慢。
有没有办法通过使用文件中数据的偏移来更快地获得句柄?
答案 0 :(得分:1)
在初始化期间创建一组数据集名称(或更好:数据集句柄)。然后你不必在每次迭代时形成字符串。时间很贵,记忆很便宜!
话虽这么说,具有一个维度的单个数据集可能比数百万个具有连续名称的相同大小的数据集更有效(如果这是一个选项)。
答案 1 :(得分:0)
如果您不介意使用C API,则有H5Literate
。这允许您将函数应用于组中的所有数据集。我认为唯一的问题是你的功能不应该抛出异常。