用python讀寫HDF5格式文件
用python讀寫HDF5格式文件
HDF5介紹
創建HDF5文件
讀取HDF5文件
HDF5的group
用python讀寫HDF5格式文件
HDF5介紹
HDF(Hierarchical Data File)是美國國家高級計算應用中心(National Center for Supercomputing Application,NCSA)為了滿足各種領域研究需求而研制的一種能高效存儲和分發科學數據的新型數據格式 。
HDF5適合存儲大量的二進制信息,並且提供並行IO加快讀寫速度。
我們可以用python的h5py包來讀寫HDF5文件。
創建HDF5文件
用h5py.File()函數和’w’ 選項創建一個data.h5文件
如create_dataset() 函數在hdf5文件里面寫入dataset,該文件里面有兩個dataset分別是dataset_1和dataset_2。
具體代碼如下。
import numpy as np import h5py data1 = np.random.random(size = (100,100)) data2 = np.random.random(size = (200,200)) hdfFile = h5py.File('data.h5', 'w') hdfFile.create_dataset('dataset_1', data=data1) hdfFile.create_dataset('dataset_2', data=data2) hdfFile.close()
讀取HDF5文件
用h5py.File()函數和’r’ 選項讀取一個data.h5文件
用get() 方法得到某個dataset
hdfFile = h5py.File('data.h5', 'r') dataset1 = hdfFile.get('dataset_1') print(dataset1.shape) hdfFile.close()
HDF5的group
group在HDF5中的作用類似於linux的文件系統層次結構,通過這個層次結構可以合理的將不同的數據組織起來。
我們用create_group() 函數創建一個組。
用keys() 函數來得到HDF5文件里面的group
用items() 函數可以查看某個group里面的dataset。
hdfFile = h5py.File('data.h5', 'w') group1 = hdfFile.create_group('group1') group1.create_dataset('dataset_1', data=data1) group1.create_dataset('dataset_2', data=data2) print(hdfFile.keys()) print(group1.items())