1、创建/读取数据文件
复制代码
1
2
3
4import h5py f = h5py.File('test.h5','w') #创建一个名为“test.h5”的h5py文件,文件索引为f f = h5py.File('test.h5','r') #"r"或"rb"#读取文件
2、group及成员的使用
复制代码
1
2
3
4
5
6
7a1=(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()函数
复制代码
1
2
3
4
5
6
7
8
9
10
11
12for 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)用组+成员名字
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14print(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文件创建数据集。
复制代码
1
2
3
4
5
6
7
8dataset1=f.create_dataset("d1") ds1=f.create_dataset("dset1",(5,),'i')#创建一个名为dset1的数据集,形状为(5,),数据类型为int型 #(创建数据集时必须要指定形状,创建组时可以没有) ds1[...]=a1#赋值方式1:用数据集的索引, #或者我们可以直接按照下面的方式创建数据集并赋值 f["dset2"]=a2#赋值方式2:用文件索引和数据集名称
输出组中成员的名字和数据的方法有两种:
(1)用数据集的索引来输出数据
复制代码
1
2
3
4
5
6
7
8
9print(ds1.value) print(ds1.name) # 这种方式下,由于没有为dset2创建索引(如“ds2”),因此无法输出 # 输出结果: /dset1 [1 2 3 4 5]
(2)用文件索引和数据集的名字
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14print(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()方法,这些方法需要接收一个回调函数作为参数。
复制代码
1
2
3
4
5
6
7
8
9
10
11def printname(name): print name f.visit(printname) 输出: mydataset subgroup subgroup/another_dataset subgroup2 subgroup2/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使用基础笔记的全部内容,更多相关h5py使用基础笔记内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复