在Python中将数组写入h5文件
我正在使用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)