资讯专栏INFORMATION COLUMN

Python实际操作HDF5文档实例

89542767 / 384人阅读

  本文关键给大家介绍了Python实际操作HDF5文档实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪


  前言


  在Matlab操作HDF5文档中早已阐述了HDF5文档早已运用Matlab对它进行操控的方式。本文总的来说怎样在Python下应用HDF5文档。我们依然依照Matlab操作HDF5文件信息顺序排列,各是建立HDF5文档,载入数据信息,获取数据。


  Python中的HDF5文档依靠h5py工具箱


  更为关联的两大主要参数为shape和maxshape,很明显我希望数据的某个层面是能够拓展的,因此在maxshape中,将期待拓展的层面标识为None,别的层面和shape主要参数里边的相同。有一点值得关注的是,使用compression='gzip'之后,全部数据能被很大的缩小,对较大的数据十分再用,而且在数据信息读写能力得时候,无需客户显式的编解码。

  h5file=h5py.File(filename,'w')

  写数据


  X=h5file.create_dataset(shape=(0,args.patch_size,args.patch_size),#数据集的维度
  maxshape=(None,args.patch_size,args.patch_size),#数据集的允许最大维度
  dtype=float,compression='gzip',name='train',#数据类型、是否压缩,以及数据集的名字
  chunks=(args.chunk_size,args.patch_size,args.patch_size))#分块存储,每一分块的大小


  使用上边的creat_dataset创立了dataset之后,读写能力数据就犹如读写能力numpy二维数组相同便捷,例如上边的函数定义了数据'train',其实就是自变量X之后,能够下边的方法去读写能力:


  data=np.zeros((100,args.patch_size,arg))
  X[0:100,:,:]=data


  在前建立数据得时候,大家界定shape=(args.chunk_size,args.patch_size,args.patch_size),假如拥有更多的数据信息,该怎么办呢?

  X.resize(X.shape[0]+args.chunk_size,axis=0)


  能使用resize方的方法来拓展在maxshape中界定为None的那一个层面:


  读取数据集


  h=h5py.File(hd5file,'r')
  train=h['train']
  train[1]
  train[2]
  ...

  载入h5文件信息方式也很简单,最先运用h5py.File方法开启相匹配的h5文档,再将里边某个数据取下至自变量,对于这个自变量的载入就犹如numpy一样。


  h=h5py.File(hd5file,'r')
  train=h['train']
  X=train[0:100]#一次从硬盘中读取比较多的数据,X将存储在内存中
  X[1]#从内存中读取
  X[2]#从内存中读取


  可是上边的载入方式存在一些问题是每一次使用时(train[1],train[2])都要从硬盘读取数据信息,这也会造成载入速度较慢。1个比较靠谱的方法是什么,每一次从硬盘读取一个chunk_size的数据信息,再将这类文件存储到内存条中,在需要时从内存条中载入,例如应用上面的方式:


  综上所述,文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128839.html

相关文章

  • h5py快速入门指南

    摘要:下面的文章主要介绍的快速入门指南,翻译自的官方文档。当使用时,最基本的准则为类似于字典,类似于中的数组。所有的和都支持几个数据位的附属命名,称为属性。 h5py是Python语言用来操作HDF5的模块。下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/lates... 。该翻译仅为个人学习h5py为目的,如有翻译不当之处...

    desdik 评论0 收藏0
  • Caffe神经网络服务层及主要参数

      此篇文章主要是给大家介绍了Caffe神经网络服务层及主要参数实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  前言  要运行caffe,必须要先构建一个实体模型(model),如较为常见的Lenet,Alex等,所以一个实体模型由好几个屋(layer)构成,每个屋又由很多主要参数构成。每一个主要参数都界定在caffe.proto这一文档中。要熟...

    89542767 评论0 收藏0
  • CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译

    摘要:,,,环境下的编译和问题解决这是可能会用到的额外的包,按自己需要先提前编译。 CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决 showImg(https://segmentfault.com/img/bVbb607?w=258&h=379); 这是gdal可能会用到的额外的包,按自己需要先提前编译。这里的话我主要用了pro...

    y1chuan 评论0 收藏0
  • Keras.js可以让你使用浏览器在GPU上运行Keras模型

    摘要:项目可以让你使用在驱动的你的浏览器上运行训练好的模型。内核卷积本地连接噪声备注及其限制可以与主线程分开单独运行在中。所以在单独的线程中运行的好处被必须运行在模式中的要求抵消了。所有的测试都会自动运行。 项目可以让你使用 WebGL 在 GPU 驱动的、你的浏览器上运行训练好的 Keras 模型。模型直接根据 Keras JSON 格式配置文件和关联的 HDF5 权重而序列化(serializ...

    XiNGRZ 评论0 收藏0
  • 还在抱怨pandas运行速度慢?这几个方法会颠覆你的看法

    摘要:它还使用执行所谓的链式索引,这通常会导致意外的结果。但这种方法的最大问题是计算的时间成本。这些都是一次产生一行的生成器方法,类似中使用的用法。在这种情况下,所花费的时间大约是方法的一半。根据每小时所属的应用一组标签。 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 showImg(https://segmentfault.com/img/bVboe...

    keelii 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<