h5py使用基础笔记
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使用基础笔记相关推荐
- JavaScript基础笔记集合(转)
JavaScript基础笔记集合 JavaScript基础笔记集合 js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译 js存放的位置 html脚本必须放在< ...
- Python初学者零碎基础笔记(一)
Python初学者零碎基础笔记 一行代码输入多个参数 方法1.) a,b,c=map(类型,input("请输入").split()) #默认空格分隔,若要转其他类型,把类型换成需 ...
- Jmeter使用基础笔记-写一个http请求
前言 本篇文章主要讲述2个部分: 搭建一个简单的测试环境 用Jmeter发送一个简单的http请求 搭建测试环境 编写flask代码(我参考了开源项目HttpRunner的测试服务器),将如下的代码保 ...
- UWP入门(二) -- 基础笔记
UWP入门(二) -- 基础笔记 原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syn ...
- [云炬创业基础笔记]第五章创业机会评估测试2
[云炬创业基础笔记]第五章创业机会评估测试1
- [云炬创业基础笔记] 第四章测试17
[云炬创业基础笔记] 第四章测试7
- [云炬创业基础笔记] 第四章测试15
[云炬创业基础笔记] 第四章测试7
- [云炬创业基础笔记] 第四章测试8
[云炬创业基础笔记] 第四章测试7
- [云炬创业基础笔记] 第四章测试5
[云炬创业基础笔记] 第四章测试1
最新文章
- IE6,7,8中兼容css3圆角问题
- oracle数据库dba密码,Oracle数据库的找回DBA账户的密码
- opnet中的例子模型
- 论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF
- 模拟数据解决二分类问题项目描述
- oracle修改用户的登录密码
- html5 session 缓存,关于HTML5中的sessionStorage的会话级缓存使用
- linux没有启用的仓库_在RHEL/CentOS 4-6中安装并启用RPMForge仓库
- centos7静默搭建oracle11g,centos7下静默安装oracle11G图解配置 1
- android11怎么降级真我,安卓11怎么降回安卓10?安卓11降回安卓10相关操作步骤
- Niagara Networks网络安全出口解决方案
- MaxScript批量修改材质、贴图名称
- 统一社会信用代码、纳税人识别号验证规则
- [转帖]龙芯下一代处理器微结构GS464E细节曝光
- 暂时性死区的详解(TDZ)
- matlab图片投稿,投稿时图片DPI的设置及相关心得
- 数据挖掘从入门到放弃(一):线性回归和逻辑回归
- 华为nova青春版是html手机吗,华为Nova青春版这款手机作为新青年良品:麒麟935+4G+64GB+18W快充...
- Javascript里EQ、NE、GT、LT、GE、LE含义
- LC76 Minimum Window Substring