【发布时间】:2017-10-30 18:33:43
【问题描述】:
我有几个(最多几百个)hdf5 文件,其中包含并行模拟的结果:每个计算节点创建一个独立的 hdf5 文件以避免任何同步问题。
有什么方法可以为 hdf5 文件中的所有数据创建一个“图像”,例如,这个“图像”看起来包含所有数据,但实际上它会提供来自其他文件的数据?
这里是我要找的:
"data-node0.h5"
spike/PopulationA -> pandas data frame columns=[0,3,6,9]
"data-node1.h5"
spike/PopulationA -> pandas data frame columns=[1,4,7,10]
"data-node2.h5"
spike/PopulationA -> pandas data frame columns=[2,5,8,11]
spike/PopulationB -> pandas data frame columns=[0,1,2,3]
"data.h5" = aggregate("data-node0.h5","data-node1.h5","data-node2.h5")
"data.h5"
spike/PopulationA -> pandas data frame columns=[0,1,2,3,4,5,6,7,8,9,10,11]
spike/PopulationB -> pandas data frame columns=[0,1,2,3]
注意文件data.h5 不包含任何数据。它使用来自data-nodeX.h5 文件的数据。
更新 hdf5 文件中的数据是带有时间序列的 pandas 数据帧。每个数据框中的列是从模型中的对象记录的一维 numpy 数组。列标识符是模型中对象的唯一 ID。表索引是以毫秒为单位的模型时间。
【问题讨论】:
-
虽然我不知道 hdf5,但你能展示生成一个 pandas 数据帧 image 文件的代码吗?你是什么意思聚合?您的意思是 append 还是 merge?
-
@Parfait 这些都不是。我不知道是否可以创建这样的图像。每个 data-nodeX 文件都包含一组来自我模型中某些对象的记录。列的编号是对象的 ID。对象可以按群体分组,因此一些节点计算来自不同群体的对象。我想创建一些“虚拟”数据文件,看起来它包含所有数据,但它只是访问另一个数据文件并从那里提供数据。所有数据的集体形象。