保存为.hdf5

时间:2016-07-29 09:05:57

标签: python sorting python-3.x hdf5 h5py

我有一些原始数据,我想以.hdf5文件格式存储,以及从数据分析中得到的结果。在将数据保存到磁盘之前,我使用时间以对我有意义的方式对不同的数据集进行排序。这方面的一个例子可能是数据集的排序如下:[' 50us'' 100us',' 200us'' 5ns&#39 ;,' 20ns' 500ns'] - 我通常会按时间增加对数据进行排序。

问题在于,将数据保存到.hdf5数据集时会按字母顺序排序。为了证实这一点,我做了这个最小的工作示例:

with h5py.File(destination_folder+'\debugging.hdf5', 'w') as f:
    alphabet_example = ['zz9999', 'zz8888','aaaa9999','ZZ9999']
    for name in alphabet_example:
        group_string = 'testing/'+ name
        f[group_string] = np.linspace(1,10,37)

    real_example = ['50us','100us','200us','5ns','20ns','500ns']
    data_for_example = [1,2,3,4,5,6]
    for num, name in enumerate(real_example):
        group_string = 'real/'+ name
        f[group_string] = data_for_example[num]


    for names in f['testing/']:
        print(names)

    print('\n')

    for names in f['real/']:
        print(names)
        print(f['real/'+names].value)
如果数据集(和组)可以按照我保存的顺序存储,那么我会节省很多开发和执行时间。否则我必须运行一个函数排序数据每次我从文件加载数据 - 这适用于数据的分析和绘图。现在我正在使用alphabeyt列表来为每个数据集添加序列,使它们成为' a_50us' b_100us' c_200us'当你想与协作者共享代码和.hdf5文件时,使用这种解决方案有点尴尬。

如果重要的话,我使用windows 7,python 3.5和h5py 2.6.0:)

干杯!

1 个答案:

答案 0 :(得分:1)

据我所知,h5py无法做到这一点。但是,可以使用netCDF4(如果你有的话,可以附带Anaconda发行版)。 HDF5和NetCDF4文件是可互操作的,因此稍后可以使用h5py读取生成的文件。