帮助h5py加载和转储包含h5py支持的类型的词典。

hdfdict的Python项目详细描述


hdfdict帮助h5py转储和加载python字典

Build Status

Coverage Status

例如,如果在字典中有numpy数组的分层数据结构,则可以使用此工具将此字典保存到h5py File()Group()中并再次加载。 这个工具只是将hdf Groups映射到dict keys,将Datset映射到dict values。 只能使用h5py支持的类型。 到现在为止,数字键必须是字符串。

默认情况下会激活延迟加载选项。所以大的h5文件不能一次加载。相反,只有从lazyhdfdict实例访问数据集时,才会加载该数据集。

示例

importhdfdictimportnumpyasnpd={'a':np.random.randn(10),'b':[1,2,3],'c':'Hallo','d':np.array(['a','b']).astype('S'),'e':True,'f':(True,False),}fname='test_hdfdict.h5'hdfdict.dump(d,fname)res=hdfdict.load(fname)print(res)

输出: {'a': <HDF5 dataset "a": shape (10,), type "<f8">, 'b': <HDF5 dataset "b": shape (3,), type "<i8">, 'c': <HDF5 dataset "c": shape (), type "|O">, 'd': <HDF5 dataset "d": shape (2,), type "|S1">, 'e': <HDF5 dataset "e": shape (), type "|b1">, 'f': <HDF5 dataset "f": shape (2,), type "|b1">}

这都是结果res中的延迟loding字段。 只需调用res.unlazy()dict(res)即可加载所有字段。 如果您只想加载特定的字段,只需使用项访问,例如res['a'],这样只会从文件中加载字段“a”。

print(dict(res))`

输出: {'a': array([-0.47666824, 0.11787749, 0.51405835, -1.49557787, -0.33617182, -0.22381693, 0.25966526, 0.58160661, 0.17019176, 1.3167669 ]), 'b': array([1, 2, 3]), 'c': 'Hallo', 'd': array([b'a', b'b'], dtype='|S1'), 'e': True, 'f': array([ True, False])}

安装

  • pip install hdfdict
  • poetry install hdfdict
  • git clone https://github.com/SiggiGue/hdfdict.gitpython hdfdict/setup.py install

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula