HDF(Hierarchical Data Format)是一种通用的跨平台、压缩性优异、灵活的数据存储结构,常用作科学数据的保存。而h5py则是python提供的HDF文件处理库。

h5py的核心概念包括:
(1)文件file,作为一种层次化的数据容器,file可理解为树根;
(2)组group,存储的索引,相当于树的节点;
(3)数据集dataset,索引对应的存储数据,相当于节点内存储的数据;
(4)属性attr,用来存储额外的小块元数据。

h5py支持层次化的group嵌套,如果将其类比于json格式,则group为key(索引),而group为value(数据)。

下面给出其典型的应用案例:

import numpy as np
import h5py# 1. 写入
f = h5py.File('./demo.h5', 'w')     # 打开文件,更推荐用with管理上下文print(f.name)        # '/',  file相当于root
print(f.keys())      # <KeysViewHDF5 []>, 所有group的名称,相当于索引# 直接赋值
A = np.random.rand(100,100)
f['numpy_A'] = A    # f[key]=value直接赋值,存储对应的group(numpy_A)和dataset(A)
for name in f:    # 等同于for name in f.keys()print(name)   # numpy_A# 创建组
f.create_group('group_1')   # 和numpy_A同级
print(f.keys())  # numpy_A  group_1# 组内通过赋值的方式创建dataset
B = np.random.rand(200,200)
f['group_1']['numpy_B'] = B# 通过create_dataset创建dataset
f['group_1'].create_dataset('mydataset', (10, 10), dtype='f')# 通过/直接同时创建group和dataset
f.create_dataset('group_2/mydataset2', (20,20), dtype='f')
print(f.keys())    # group_1 group_2 numpy_A# 创建属性
f.attrs['name'] = 'Mia'   # 关闭,存储
f.close()# 2. 读取
f = h5py.File('./demo.h5', 'r')print(f.keys())# 获取属性的key
print(f.attrs.keys())# 递归遍历
f.visit(lambda x:print(x))

【python基础】h5py库的基本使用相关推荐

  1. 关于python 中h5py库安装不上的解决办法

    关于python 中h5py库安装不上的解决办法 问题 解决步骤 1.先安装wheel这个库,方法就是从命令行中输入pip install wheel 2.下载自己对应的h5py的版本,网址如下 3. ...

  2. python基础代码库-python3.4第三方库的安装?python基础代码库

    python怎么安装下载模块 python安装下载模块的:1.按盘上的[win r]快,打开运行窗口:2.输入cmd,点击定]:3.在打开的命令提示符中执行[pip install 模块名]命令即可. ...

  3. python基础代码库-python基础知识和练习代码

    1.编译:将高级语言源代码转换成目标代码(机器语言),程序便可运行. ​ 好处:目标代码执行速度更快:目标代码在相同操作系统上使用灵活. 2.解释:将高级语言源代码逐条转换成目标代码同时逐条执行,每次 ...

  4. python基础代码库-Python基础数据处理库-NumPy

    最近更新:2017-07-19 NumPy是Python做数据处理的底层库,是高性能科学计算和数据分析的基础,比如著名的Python机器学习库SKlearn就需要NumPy的支持.掌握NumPy的基础 ...

  5. python基础代码库-python爬虫基础教程:requests库(二)代码实例

    get请求 简单使用 import requests ''' 想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载! ''' respons ...

  6. [转载] Python基础——Numpy库超详细介绍+实例分析+附代码

    参考链接: Python中的numpy.identity 1.NumPy简介 NumPy是高性能科学计算和数据分析的基础包,计算速度要比python自带的函数快很多,非常好用.一般不需要安装,装Pyt ...

  7. python基础代码库-python基础:一个非常简单且详细的多线程代码

    前言 多线程的好处应该不用多说吧?python语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了 Python 的多线程编程. 在实际应用,多线程还是很有用的,比如有时候可以 ...

  8. python基础题库-Python题库

    为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节 ...

  9. python基础代码库-CNN详解-基于python基础库实现的简单CNN

    CNN,即卷积神经网络,主要用于图像识别,分类.由输入层,卷积层,池化层,全连接层(Affline层),Softmax层叠加而成.卷积神经网络中还有一个非常重要的结构:过滤器,它作用于层与层之间(卷积 ...

  10. python基础代码库-python基础--注册和登录功能 代码

    注册和登录功能单用户版 注册 count = 0 while count < 3: username_inp = input('请输入你的用户名:') pwd_inp = input('请输入你 ...

最新文章

  1. 使用Freestreamer 拖动滑动条音频重新播放或者没有声音seekToPosition无效
  2. SOA 的基本概念及设计原则浅议
  3. 文本分类--普通分类
  4. 聊聊这些天收到的简历
  5. 【性能优化】PHP代码输出压缩后HTML
  6. 苹果无人车或明年发布:被奔驰、比亚迪拒绝后,大众面包车终成接盘侠
  7. linux中shell数组的使用和建立
  8. Java 常用修饰符总结
  9. winrar4.0 注册码
  10. 一种依靠压缩电磁铁制造暗物质虫洞的机器
  11. 微信登录提示逻辑不正确_微信逻辑错误无法登录
  12. LINUX未来的发展前景
  13. 背课文记单词,读课文记单词,读文章记单词;40篇文章搞定3500词;71篇文章突破中考单词;15篇文章贯通四级词汇;15篇文章贯通六级词汇
  14. jackson解析泛型的正确写法,解决 in unnamed module of loader ‘app‘
  15. EasyExcel 动态表头 + 数据单元格合并
  16. 用java画国际象棋棋盘
  17. 我用wxPython搭建GUI量化系统之wx.grid实现excel功能
  18. 七、python排序之先按汉语拼音排序再按笔画排序
  19. 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0
  20. 软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?

热门文章

  1. 如何免费下载百度文库,豆丁网等付费文章
  2. html背景怎么变成透明的,怎样把图片背景变成透明
  3. 李江涛:使用Sakai构建开放式教学平台
  4. 物联网工程导论第二版答案选择题
  5. Android 高德地图搜索功能相关
  6. 卷积神经网络模型之——VGG-16网络结构与代码实现
  7. VSCode打开文件中文乱码
  8. 双线性映射:零知识证明的引擎
  9. 自动驾驶汽车电子电气架构技术开发
  10. log4j配置详解(非常详细)