帮助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第三方库


热门话题
java如何在JSF中检索DIV宽度   JavaMaven:替换导入为javax和jakarta创建单独的工件   java ModelViewController和应用程序设置   多线程Java线程,具有可视和音频   java Servlet通过Post上传文件   java Google日历API依赖项不起作用   使用多个窗口使用Eclipse进行java调试   java JNI 8 C++:线程附加和分离和异步回调   java将MS Office communicator状态指示器添加到JSP中   java找不到工件javax。指定路径下的jnlp:jnlpapi:jar:5.0   java以编程方式从图像生成像素艺术   java Eclipse IDE使用代理项对处理表情   java层和组件之间的区别是什么?   java使用正弦波进行流畅的转换   为什么我不能在NetBeans调试器中单步进入/跳过Java源代码?