📅  最后修改于: 2023-12-03 15:21:52.661000             🧑  作者: Mango
h5py
是 Python 中常用的一种处理 HDF5(Hierarchical Data Format)数据的库。通过 h5py
,我们可以方便地读取、写入和修改 HDF5 数据集。本文将介绍如何从 h5py
数据集中获取数组。
h5py
可以通过 pip 安装:
pip install h5py
假设有一个 HDF5 文件,其中包含一个名为 my_dataset
的数据集,是一个二维的数组。我们可以使用以下代码读取该数组:
import h5py
with h5py.File('my_file.hdf5', 'r') as f:
my_dataset = f['my_dataset'][:]
首先用 h5py.File
打开 HDF5 文件。使用 with
语句可以自动关闭文件,避免内存泄漏。然后通过文件对象 f
获取数据集 my_dataset
,并把该数组赋给变量 my_dataset
。
在获取 my_dataset
数组时,我们使用了 [:]
。这是因为 h5py
读取数据集后返回的是一个 h5py.Dataset
对象,而不是一个 NumPy 数组。[:]
可以把 h5py.Dataset
转换为 NumPy 数组。
如果数据集不是二维的,在使用 [:]
前需要先用 shape
属性获取数据集的形状,例如:
import h5py
with h5py.File('my_file.hdf5', 'r') as f:
my_dataset = f['my_dataset']
shape = my_dataset.shape
my_array = my_dataset[:].reshape(shape)
这里使用了 reshape
来转换形状,以确保数据正确地被读取。
如果需要修改数据集中的数据,也可以使用 h5py
:
import h5py
import numpy as np
with h5py.File('my_file.hdf5', 'r+') as f:
my_dataset = f['my_dataset']
my_dataset[0, 1] = np.pi
这里使用了 r+
参数打开文件,允许读取和写入。my_dataset[0, 1]
可以获取到数组中的一个元素,并将其修改为 np.pi
。
本文介绍了如何使用 h5py
读取和修改 HDF5 数据集中的数组。读取时,需要将 h5py.Dataset
转换为 NumPy 数组;修改时,需要使用 r+
打开文件,并通过数组下标来修改元素值。