Python hdf5,python读取hdf文件

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: