我正在尝试覆盖一个numpy数组,它是一个非常复杂的h5文件的一小部分。
我正在提取一个数组,更改一些值,然后想将该数组重新插入到h5文件中。
我没有问题提取嵌套的数组。
f1 = h5py.File(file_name,'r')
X1 = f1['meas/frame1/data'].value
f1.close()
我尝试的代码如下所示,但未成功:
f1 = h5py.File(file_name,'r+')
dset = f1.create_dataset('meas/frame1/data', data=X1)
f1.close()
作为一个健全性检查,我使用以下代码在Matlab中执行了此操作,并且没有任何问题。
h5write(file1, '/meas/frame1/data', X1);
有人对如何成功执行此操作有任何建议吗?
最佳答案
您要分配值,而不是创建数据集:
f1 = h5py.File(file_name, 'r+') # open the file
data = f1['meas/frame1/data'] # load the data
data[...] = X1 # assign new values to data
f1.close() # close the file
要确认所做的更改是否正确保存,请执行以下操作:
f1 = h5py.File(file_name, 'r')
np.allclose(f1['meas/frame1/data'].value, X1)
#True
关于python - 如何使用h5py覆盖h5文件中的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22922584/