1、创建/读取数据文件

import h5py
f = h5py.File('test.h5','w') #创建一个名为“test.h5”的h5py文件,文件索引为f
f = h5py.File('test.h5','r') #"r"或"rb"#读取文件

2、group及成员的使用

a1=(1,2,3,4,5)
a2=((2,2),(3,4),(9,7))
data = f.create_group("g1")#创建一个名为g1的组,data是该组的索引
data['k1']=a1  #为g1组添加成员,成员名为k1,并将数组a1的值赋给k1
data['k2']=a2#注意是用“data”而不是“g1”,因为data才是索引
#成员的赋值可以是其它来源的数据,例如从文件中读取的某个属性值等。

输出组中成员的名字和数据的方法有两种:
(1)用组的keys()函数

for key in data.keys():  #注意是"data.keys()"而不是"f.keys()"print(data[key].name)print(data[key].value)输出结果:
/g1/k1
[1 2 3 4 5]
/g1/k2
[[2 2][3 4][9 7]]

(2)用组+成员名字

print(f['g1/k1'].name)#注意要加上组的名字,只有成员的名字无法输出
print(f['g1/k1'].value)#成员可以用value输出值,组不能。
print(f['g1/k2'].name)
print(f['g1/k2'].value)输出结果(和1中结果相同):
/g1/k1
[1 2 3 4 5]
/g1/k2
[[2 2][3 4][9 7]]

3、dataset及使用

group的成员就是dataset,在为组创建成员的时候其实就是在组中创建了不同是数据集。但也可以直接对h5py文件创建数据集。

dataset1=f.create_dataset("d1")ds1=f.create_dataset("dset1",(5,),'i')#创建一个名为dset1的数据集,形状为(5,),数据类型为int型
#(创建数据集时必须要指定形状,创建组时可以没有)
ds1[...]=a1#赋值方式1:用数据集的索引,
#或者我们可以直接按照下面的方式创建数据集并赋值
f["dset2"]=a2#赋值方式2:用文件索引和数据集名称

输出组中成员的名字和数据的方法有两种:
(1)用数据集的索引来输出数据

print(ds1.value)
print(ds1.name)
# 这种方式下,由于没有为dset2创建索引(如“ds2”),因此无法输出
# 输出结果:
/dset1
[1 2 3 4 5]

(2)用文件索引和数据集的名字

print(f['dset1'].name)
print(f['dset1'].value)
print(f['dset2'].name)#这种方式可以直接利用数据集的名字来输出数据
print(f['dset2'].value)输出结果:
/dset1
[1 2 3 4 5]
/dset2
[[2 2][3 4][9 7]]

4、 遍历组内成员

(参考博客:https://blog.csdn.net/yudf2010/article/details/50353292?utm_source=copy )

为了遍历一个group内的所有直接和间接成员,我们可以使用group的visit()和visititerms()方法,这些方法需要接收一个回调函数作为参数。

    def printname(name):print namef.visit(printname)输出:mydatasetsubgroupsubgroup/another_datasetsubgroup2subgroup2/dataset_three

其它博客参考:
https://blog.csdn.net/csdn15698845876/article/details/73278120 https://blog.csdn.net/Jasminexjf/article/details/79820413

h5py官方文档:http://docs.h5py.org/en/stable/index.html

h5py使用基础笔记相关推荐

  1. JavaScript基础笔记集合(转)

    JavaScript基础笔记集合 JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在< ...

  2. Python初学者零碎基础笔记(一)

    Python初学者零碎基础笔记 一行代码输入多个参数 方法1.) a,b,c=map(类型,input("请输入").split()) #默认空格分隔,若要转其他类型,把类型换成需 ...

  3. Jmeter使用基础笔记-写一个http请求

    前言 本篇文章主要讲述2个部分: 搭建一个简单的测试环境 用Jmeter发送一个简单的http请求 搭建测试环境 编写flask代码(我参考了开源项目HttpRunner的测试服务器),将如下的代码保 ...

  4. UWP入门(二) -- 基础笔记

    UWP入门(二) -- 基础笔记 原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syn ...

  5. [云炬创业基础笔记]第五章创业机会评估测试2

    [云炬创业基础笔记]第五章创业机会评估测试1

  6. [云炬创业基础笔记] 第四章测试17

    [云炬创业基础笔记] 第四章测试7

  7. [云炬创业基础笔记] 第四章测试15

    [云炬创业基础笔记] 第四章测试7

  8. [云炬创业基础笔记] 第四章测试8

    [云炬创业基础笔记] 第四章测试7

  9. [云炬创业基础笔记] 第四章测试5

    [云炬创业基础笔记] 第四章测试1

最新文章

  1. IE6,7,8中兼容css3圆角问题
  2. oracle数据库dba密码,Oracle数据库的找回DBA账户的密码
  3. opnet中的例子模型
  4. 论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF
  5. 模拟数据解决二分类问题项目描述
  6. oracle修改用户的登录密码
  7. html5 session 缓存,关于HTML5中的sessionStorage的会话级缓存使用
  8. linux没有启用的仓库_在RHEL/CentOS 4-6中安装并启用RPMForge仓库
  9. centos7静默搭建oracle11g,centos7下静默安装oracle11G图解配置 1
  10. android11怎么降级真我,安卓11怎么降回安卓10?安卓11降回安卓10相关操作步骤
  11. Niagara Networks网络安全出口解决方案
  12. MaxScript批量修改材质、贴图名称
  13. 统一社会信用代码、纳税人识别号验证规则
  14. [转帖]龙芯下一代处理器微结构GS464E细节曝光
  15. 暂时性死区的详解(TDZ)
  16. matlab图片投稿,投稿时图片DPI的设置及相关心得
  17. 数据挖掘从入门到放弃(一):线性回归和逻辑回归
  18. 华为nova青春版是html手机吗,华为Nova青春版这款手机作为新青年良品:麒麟935+4G+64GB+18W快充...
  19. Javascript里EQ、NE、GT、LT、GE、LE含义
  20. LC76 Minimum Window Substring

热门文章

  1. 加密、签名以及苹果的双重签名机制
  2. sublime text3设置快捷键在浏览器中打开
  3. Web全栈工程师年薪40w+,凭什么?
  4. 旷视科技1面2面----最差的一次面试体验
  5. 文件不能设置默认打开方式怎么办?
  6. SP_Flash_Tool对应MTK CPU型号速查表汇总分析
  7. NFT艺术品交易平台
  8. C. Divan and bitwise operations
  9. VirtualBox虚拟机安装和环境搭建
  10. 计算机win2000如何连接wifi,台式电脑windows7怎么连接wifi