【发布时间】:2016-12-03 22:24:33
【问题描述】:
我有一些原始数据想以 .hdf5 文件格式存储,以及我从数据分析中获得的结果。在将数据保存到磁盘之前,我使用时间以对我有意义的方式对不同的数据集进行排序。一个例子可能是数据集是这样排序的:['50us','100us','200us','5ns','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 :)
干杯!
【问题讨论】:
标签: python sorting python-3.x hdf5 h5py