在python中将数组写入h5

时间:2014-10-22 10:30:40

标签: python arrays numpy h5py

使用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 个答案:

答案 0 :(得分:1)

f.create_dataset应为outfile.create_dataset,因为f是在阅读模式下打开的File,而outfileFile在写入时打开模式。

顺便说一句,如果您使用h5py.File作为with-statement中的上下文管理器, 当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)