我有一些生成3d Numpy数组的示例代码 - 然后我使用h5文件将此数据保存到h5py文件中 . 那么我怎么能沿着第四维度的第二个数据集"append"?或者,如何沿现有 .h5
文件的第4维(或新轴)编写另一个3d数据集?我已经阅读了我能找到的文档,但没有一个例子可以解决这个问题 . 我的代码如下所示:
import h5py
import numpy as np
dataset1 = np.random.rand(240,240,250);
dataset2 = np.random.rand(240,240,250);
with h5py.File('data.h5', 'w') as hf:
dset = hf.create_dataset('dataset_1', data=dataset1)
1 回答
使用http://docs.h5py.org/en/latest/high/dataset.html我试验了一下:
做一个普通的
dataset
:帮助
resize
:由于我没有指定
maxshape
,因此我看起来不能更改或添加到此数据集 .所以我无法定义一个3d'空间'并在其中放入一个2d数组 - 至少不是这样 .
但我可以添加维度(等级)到
data
:现在我可以调整数据集的大小 - 在1维或更多维中,直到定义的最大值 .
原始
data
占据扩展数据集的一角现在填写一些零:
所以,是的,你可以把你的两个
dataset
放在一个h5
数据集中,只要你指定一个足够大的maxshape
来开始,例如, (2,240,240,250)或(240,240,500)或(240,240,250,2)等 .或者无限制地调整大小
maxshape=(None, 240, 240, 250))
.看起来主要的限制是您无法在创建后添加维度 .
另一种方法是在存储之前连接数据,例如,