在Python中将数组写入h5文件

1 投票
1 回答
837 浏览
提问于 2025-04-29 00:29

我正在使用h5py模块,想要从一个h5文件中读取数据,进行一些简单的计算,然后把结果写入一个新的h5文件。到目前为止一切都很好,除了在写入数据集的时候遇到问题。

到现在为止我有:

f = h5py.File(inData,'r')
dset = f['/DATA/DATA/']
HH = dset[...,0]

HHdB = (10*numpy.log10(HH*HH)) - 83

outfile = h5py.File(outData, 'w')
f.create_dataset('/DATA/DATA/', data=(HHdB))

但是我遇到了一个错误:“ValueError: 无法创建数据集(数据集:无法初始化对象)”,我对此不太明白。

我还是个新手,所以任何帮助都会非常感激!

暂无标签

1 个回答

1

这里提到的 f.create_dataset 应该改成 outfile.create_dataset,因为 f 是以读取模式打开的文件,而 outfile 是以写入模式打开的文件。

顺便说一下,如果你在 with语句中使用 h5py.File,当 Python 退出这个 with 语句时,文件会自动为你关闭(并且会保存到磁盘上)。

import numpy
import h5py

with h5py.File(inData,'r') as f:
    dset = f['/DATA/DATA/']

HH = dset[...,0]
HHdB = (10*numpy.log10(HH*HH)) - 83

with h5py.File(outData, 'w') as outfile:
    outfile.create_dataset('/DATA/DATA/', data=HHdB)

撰写回答