gpt4 book ai didi

python - 输入和输出 numpy 数组到 h5py

转载 作者:IT老高 更新时间:2023-10-28 21:12:02 30 4
gpt4 key购买 nike

我有一个 Python 代码,它的输出是 enter image description here大小的矩阵,其条目都是 float 类型。如果我使用扩展名 .dat 保存它,则文件大小约为 500 MB。我读到使用 h5py 大大减少了文件大小。所以,假设我有一个名为 A 的 2D numpy 数组。如何将其保存到 h5py 文件中?另外,我如何读取同一个文件并将其作为 numpy 数组放在不同的代码中,因为我需要对数组进行操作?

最佳答案

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(每个都有不同的 python API,位于 hdf5 文件规范之上)。您还应该看看 numpy 原生提供的其他简单二进制格式,例如 np.savenp.savez 等:

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

关于python - 输入和输出 numpy 数组到 h5py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928136/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com