如何为 .hdf5 类型创建特定类型的对象?
How to create a specific type of object for type .hdf5?
我的问题是关于为 .hdf5 文件创建对象类型或文档。该对象将具有三个属性,一个 id,一个 user_id 和一个大小为 64 的布尔数组。我必须创建它们大约 10000000(千万)个。
想象一下 mongodb,我必须那样使用它们。我必须查询某些特定的 user_id'ed 对象以及所有对象。
感谢任何建议和帮助。
对于这种情况,我会继续使用字典。我觉得字典确实可以很好地扩展。由于查询将在 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 文件创建对象类型或文档。该对象将具有三个属性,一个 id,一个 user_id 和一个大小为 64 的布尔数组。我必须创建它们大约 10000000(千万)个。
想象一下 mongodb,我必须那样使用它们。我必须查询某些特定的 user_id'ed 对象以及所有对象。
感谢任何建议和帮助。
对于这种情况,我会继续使用字典。我觉得字典确实可以很好地扩展。由于查询将在 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()
总的来说,希望对您有所帮助。