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


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中