我有这个:
data = [array([[ 0.5129556, 0.4993599, 0.5027999, 0.5005983]]),
array([[ 0.5129556, 0.4993599, 0.5027999, 0.5005983,
0.4979439, 0.4991087, 0.4982641]])]
name ='name'
filename = 'path'
我想把它写成python的H5文件。我收到以下错误:
ValueError: could not broadcast input array from shape (4) into
shape (1)
我现在拥有的是:
with h5py.File(filename, 'w') as hf:
for i in data:
hf.create_dataset(name = name, data=data,
shape=len(data), dtype=float)
答案 0 :(得分:1)
您的数据数组似乎有可变长度的行。是否要将整个data
写入单个数据集,或者是否要将数据的每一行写入不同的数据集?在第一种情况下,您需要修复数据数组以使行长度相等(并且代码中的循环没有意义),在后一种情况下,您需要修复数据集名称(即,提供唯一的name
对于每一行)并在代码中设置data=i
(i
,在下面的代码中设置d
):
with h5py.File(filename, 'w') as hf:
for n, d in enumerate(data):
hf.create_dataset(name = 'dataset{:d}'.format(n), data=d)