# -*- coding: gbk -*-
# 该代码用于介绍hdf5的使用方法
import numpy as np
import h5py
# 创建一个hdf5文件
f = h5py.File('test.h5', 'w')
f.close()
# 写入数据
f = h5py.File('test.h5', 'w')
data = np.random.rand(100, 100)
f['data'] = data
f['subdata'] = subdata = np.random.rand(10, 10)
arr = np.array([5,2])
f['arr'] = arr
f.close()
# 读取数据
f = h5py.File('test.h5', 'r')
data = f['data'][:]
subdata = f['subdata'][:]
dset = f["arr"]
#f.close()
'''print(data) # 输出数据
#print(subdata) # 输出子数据
print(dset) # 输出数组'''
print(dset.shape) # 输出数组形状
print(dset.dtype) # 输出数组数据类型
out = dset[...]
print(type(out)) # 输出数组类型
# 注意:Dataset的数据是在磁盘上⽽不是内存中
# -*- coding: gbk -*-
# 使用visitor模型多级遍历
import numpy as np
import h5py
#创建一个简单文件
f = h5py.File('visitor_test.h5', 'w')
data = [1, 2, 3, 4, 5]
data1 = np.array([1, 2, 3, 4, 5,6,7,8,9,10])
data2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
f.create_dataset('top_dataset',data=data)
f.create_group('top_group1')
f.create_group('top_group1/sub_group1')
f.create_dataset('top_group1/sub_group1/subsub_group1',data=data1)
f.create_group('top_group2')
f.create_dataset('top_group2/sub_group2',data=data2)
def print_name(name):
print(name)
f.visit(print_name) # 输出所有节点名称
f.close()

