h5py 设置数据集属性的大小

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

我需要将一些数据写入 HDF5 文件,该文件将由数据处理应用程序读取。 我用 h5py 来做这件事。 但是,数据处理应用程序似乎只接受数组大小为 1 的属性,但是当我使用 h5py 创建属性时,我得到一个名为标量的数组大小。下图来自HDFView

我明白,当我调用

dataset.attrs.create(key, value)
时,我可以设置属性的 dtype 和形状 h5py 文档。但我不明白我需要提供什么才能使数组大小始终为 1 而不是标量。特别是如上所示,其中一些似乎只是设置为开箱即用的。

我通过以下方式创建属性:

import h5py

if __name__ == '__main__':
    out_file = h5py.File('tmp.h5')
    data = [0, 1, 2, 3, 4]
    attributes = {'sample': 1, 'option': 'tmp'}

    out_file.create_dataset('tmp_dataset', data=data)
    for attr_key, attr_value in attributes.items():
        out_file['tmp_dataset'].attrs.create(attr_key, attr_value)
    out_file.close()

我尝试将 dtype 指定为

float
等等。但好像没有效果。

python h5py
1个回答
0
投票

好吧,我找到了解决这个问题的方法。

我没有发现这是我将用于创建的形状参数。因此,通过将上面的 MRE 链接为:

import h5py

if __name__ == '__main__':
    out_file = h5py.File('tmp.h5')
    data = [0, 1, 2, 3, 4]
    attributes = {'sample': 1, 'option': 'tmp'}

    out_file.create_dataset('tmp_dataset', data=data)
    for attr_key, attr_value in attributes.items():
        out_file['tmp_dataset'].attrs.create(name=attr_key, data=attr_value, shape=(1,))
    out_file.close()

问题我已经解决了

© www.soinside.com 2019 - 2024. All rights reserved.