Python hdf5,python读取hdf文件
本文主要介绍Python操作HDF5文件的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010简介创建文件和数据集写入数据集读取数据集
目录
在Matlab操作HDF5文件中,详细介绍了用Matlab操作HDF5文件的方法。本文总结了如何在Python中使用HDF5文件。我们还是遵循Matlab中操作HDF5文件的顺序,即创建HDF5文件,写数据,读数据。
Python下的HDF5文件依赖于h5py工具包。
引言
使用h5py。File()方法来创建hdf5文件。
h5file=h5py。文件(文件名,“w”)
然后在此基础上创建一个数据集。
x=H5 file . create _ dataset(shape=(0,args.patch _ size,args.patch _ size),#数据集的维度
Maxshape=(none,args.patch _ size,args.patch _ size),#数据集允许的最大维度
Dtype=float,compression= gzip ,name= train ,# data type,是否压缩,以及数据集的名称。
Chunks=(args.chunk _ size,args.patch _ size,args.patch _ size)) #块存储,每个块的大小
该关系的两个最重要的参数是shape和maxshape。显然,我们希望数据集的某个维度是可扩展的,所以在maxshape中,要扩展的维度被标记为None,其他维度与shape参数中的维度相同。还有一点值得注意的是,使用compression=gzip 后,整个数据集可以被大幅压缩,这对于较大的数据集非常有用,而且在读写数据时,用户不需要显式解码。
创建文件和数据集
使用上面的creat_dataset创建数据集后,读写数据集就像读写numpy数组一样方便。例如,在上面的函数定义了数据集‘train’之后,也就是变量x之后,可以通过以下方式对其进行读写:
data=np.zeros((100,args.patch_size,arg))
X[0:100,]=数据
在前面创建数据集的时候,我们定义了shape=(args.chunk _ size,args.patch _ size,args.patch _ size)。数据多了怎么办?
可以使用resize方法扩展在maxshape中定义为None的维度:
x . resize(x . shape[0]args . chunk _ size,axis=0)
因为我们在max shape=(none,args.patch _ size,args.patch _ size)中将第零个维度定义为可扩展的,所以首先我们用X.shape[0]求出这个维度的长度并展开。维度展开后,您可以继续向其中写入数据。
写数据集
读取h5文件的方法也很简单。首先,使用h5py打开相应的h5文件。File方法,然后取出一个数据集放在它的一个变量中。读取这个变量就像numpy一样。
h=h5py。文件(hd5file, r )
火车=h[火车]
火车[1]
火车[2]
.
但是上面的读取方法有一个问题,就是每次使用时(train[1],train[2]),都需要从硬盘中读取数据,这样会导致读取速度变慢。比较好的方法是从硬盘中一次读取一个chunk_size的数据,然后将数据存储在内存中,需要时从内存中读取。例如,使用以下方法:
h=h5py。文件(hd5file, r )
火车=h[火车]
X=train[0:100] #一次从硬盘中读取更多的数据,X会被存储在内存中。
X[1] #从内存中读取
X[2] #从内存中读取
这个方法会快很多。
以上是Python操作HDF5文件的例子的细节。更多关于Python操作HDF5文件的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。