我有一些原始數據,我想以.hdf5文件格式存儲,並且從數據分析中獲得結果。在將數據保存到磁盤之前,我使用時間以對我有意義的方式對不同的數據集進行排序。其中一個例子可能是數據集按如下排序:['50us','100us','200us','5ns','20ns','500ns'] - 我通常會隨着時間的推移對數據進行排序。當保存爲.hdf5時,保留數據集或組的(非字母順序)
問題是,當將數據保存到.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,蟒蛇3.5和2.6.0 h5py如果它的事項:)
乾杯!
感謝您的評論。我會看看netCDF4 :) – DonMP