0
我的問題是關於爲.hdf5文件創建對象類型或文檔。該對象將具有三個屬性,一個id,一個user_id和一個大小爲64的布爾數組。我必須創建它們大約10000000(1000萬)個。如何爲.hdf5類型創建特定類型的對象?
想象一下mongodb,我必須像那樣使用它們。我必須針對某些特定的user_id對象以及所有這些對象進行查詢。
任何建議和幫助表示讚賞。
我的問題是關於爲.hdf5文件創建對象類型或文檔。該對象將具有三個屬性,一個id,一個user_id和一個大小爲64的布爾數組。我必須創建它們大約10000000(1000萬)個。如何爲.hdf5類型創建特定類型的對象?
想象一下mongodb,我必須像那樣使用它們。我必須針對某些特定的user_id對象以及所有這些對象進行查詢。
任何建議和幫助表示讚賞。
我會繼續前進,併爲這種情況使用字典。我覺得字典的擴展很好。由於查詢將在user_id上,因此我會將其作爲關鍵。
結構會像
{
'user_id-xyz': {
'id':'id-1212',
'boolarray':[True,False,..],
},
'user_id-abc':{
...
}
}
爲了實現這一點,我可能會去一個numpy的自定義數據類型。
element = np.dtype([('id', 'i16'), ('boolarray', 'b',(64,1))])
f = h5py.File('foo.hdf5','w')
dset = f.create_dataset("blocky", (1000000,), dtype='V79') # 64(bools)+15(for id)
grp = f.create_group("user_id-xyz")
# create subgroups for each id.
subdataset = grp.create_dataset('ele',(1,),dtype=element)
# test of membership.
'user_id-xyz' in f
# retrieval
f.get('user_id-xyz')
# all keys.
f.keys()
總的來說,我希望這可以幫助你。
好吧,但我如何存儲這些對象?據我所知hdf5使用numpy數組來存儲。 –
好的。我沒有真正注意到h5py標籤。但是,看看文檔,我會使用user_id作爲一個組。在那裏我會有一個布爾陣列。前n個數字代表id。 id的大小是多少? – Vasif
2^10或2^15最有可能。 –