开发者社区> 问答> 正文

输入和输出numpy数组到h5py

我有一个Python代码,其输出为在此处输入图片说明大小矩阵,其条目均为type float。如果使用扩展名保存,.dat则文件大小约为500 MB。我读到,使用h5py会大大减少文件大小。因此,假设我有一个名为的2D numpy数组A。如何将其保存到h5py文件?另外,由于需要对数组进行操作,如何读取相同文件并将其作为numpy数组放入不同的代码中? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 12:30:56 566 0
1 条回答
写回答
取消 提交回答
  • h5py提供了一个数据集和组模型。前者基本上是数组,而后者可以视为目录。每个都被命名。您应该查看API的文档和示例:

    http://docs.h5py.org/en/latest/quick.html

    一个简单的示例,您要在其中创建所有数据,然后只想将其保存到hdf5文件中,如下所示:

    In [1]: import numpy as np In [2]: import h5py In [3]: a = np.random.random(size=(100,20)) In [4]: h5f = h5py.File('data.h5', 'w') In [5]: h5f.create_dataset('dataset_1', data=a) Out[5]: <HDF5 dataset "dataset_1": shape (100, 20), type "<f8">

    In [6]: h5f.close() 然后,您可以使用以下命令将数据加载回:

    In [10]: h5f = h5py.File('data.h5','r') In [11]: b = h5f['dataset_1'][:] In [12]: h5f.close()

    In [13]: np.allclose(a,b) Out[13]: True 绝对看看文档:

    http://docs.h5py.org

    写入hdf5文件取决于h5py或pytables(每个文件都具有位于hdf5文件规范之上的不同python API)。您还应该看看numpy本机提供的其他简单二进制格式,例如np.save,np.savez等等:

    http://docs.scipy.org/doc/numpy/reference/routines.io.html

    2020-02-08 12:31:10
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载