如何将 HDF5 数据集写入字典矩阵

问题描述 投票:0回答:0

我正在编写一个小脚本,将 HDF5 文件中的数据写入矩阵以供进一步分析。

文件结构如下: 该文件由几个组组成,这些组在下面的代码中使用 groupname_template 相应命名(例如“0, 0”,“0, 1”等)。每个组里面至少有一个数据集

我想创建一个字典矩阵,其中的每个元素都是一个由数据集名称和相应数据组成的字典。

这是我想出的代码:

import numpy as np
import h5py
import re

loaddir = r'C:\Users\User\Documents\data reading test\test_datafile.hdf5'
matrix_dict = np.full((10,10), {})
groupname_template = re.compile('\d+, \d+')

with h5py.File(loaddir, 'r') as loadedfile:
    for group in loadedfile.keys():
        if bool(re.match(groupname_template, group)):
            for key, value in loadedfile[group].items():
                matrix_dict[eval(group)[0], eval(group)[1]][key] = value[:]

但是,当我尝试将字典写入矩阵单元格时,它也会被复制到之前填充的所有单元格中,这导致矩阵仅包含最后一组的数据集。

我尝试了不同的语法和方法,但问题仍然存在。

所以我愿意接受任何关于导致数据集这种奇怪传播的原因的建议。

python-3.x numpy dictionary hdf5 h5py
© www.soinside.com 2019 - 2024. All rights reserved.