python 笔记:h5py 读取HDF5文件

1 HDF5文件

  • HDF5 是 Hierarchical Data Format version 5 的缩写,是一种用于存储和管理大量数据的文件格式
  • 一个h5py文件可以看作是 “dataset” 和 “group” 二合一的容器
    • dataset : 数据集,像 numpy 数组一样工作
    • group : 包含了其它 dataset 和 其它 group

2  读取文件

以t2vec的 data/porto-vocab-dist-cell100.h5 为例

import h5py
import numpy as np

data_dir='/home/ruizhichai/t2vec/data/porto-vocab-dist-cell100.h5'

file=h5py.File(data_dir,'r')
#打开文件

2.1 keys:获取h5文件中所有组和数据集的名称

file.keys()
#<KeysViewHDF5 ['D', 'V']>

2.2 visit:根据指定的函数来遍历.h5文件的组和数据集

file.visit(lambda x: print(x))
'''
D
V
'''

2.3 读取每个数据集的内容

file['D'][:].shape,file['D'][:]
'''
((18866, 10),
 array([[   0.        ,    0.        ,    0.        , ...,    0.        ,
            0.        ,    0.        ],
        [   0.        ,    0.        ,    0.        , ...,    0.        ,
            0.        ,    0.        ],
        [   0.        ,    0.        ,    0.        , ...,    0.        ,
            0.        ,    0.        ],
        ...,
        [ 412.31056256,  400.        ,  316.22776602, ...,  223.60679775,
          141.42135624,  200.        ],
        [1486.60687473, 1389.24439894, 1476.48230602, ...,  447.2135955 ,
          100.        ,    0.        ],
        [ 761.57731059,  707.10678119,  670.82039325, ...,  100.        ,
            0.        ,  200.        ]]))
'''

3 写HDF5文件

data_dir='tst.h5'

file=h5py.File(data_dir,'w')

3.1 创建组

grp_1=file.create_group('group_1')
grp_2=file.create_group('group_2')

3.2 向组/file根目录写文件

lst1=np.arange(10)
lst2=np.arange(5,8)
lst3=np.arange(6,10,2)

grp_1.create_dataset("lst1",data=lst1)
grp_2.create_dataset("lst2",data=lst2)
file.create_dataset("lst3",data=lst3)

file.keys()
#<KeysViewHDF5 ['group_1', 'group_2', 'lst3']>

file['group_1'].keys()
#<KeysViewHDF5 ['lst1']>

file['group_1']['lst1'][:]
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值