import h5pyimport numpy as np# 创建文件with h5py.File('data.h5', 'w') as f: dataset = f.create_dataset('matrix', data=np.random.random((100, 100))) dataset.attrs['description'] = '随机矩阵'# 读取文件with h5py.File('data.h5', 'r') as f: print(f['matrix'].shape) print(f['matrix'].attrs['description'])
压缩与分块
with h5py.File('compressed.h5', 'w') as f: f.create_dataset('large', data=np.random.random((1000, 1000, 10)), compression='gzip', compression_opts=9, chunks=(100, 100, 1))
部分 I/O
with h5py.File('data.h5', 'r') as f: subset = f['matrix'][100:200, 300:400] # 只读取子区域 # 逐块处理 for i in range(0, f['matrix'].shape[0], 100): chunk = f['matrix'][i:i+100, :]