如何在python中将列表列表存储到h5文件中

时间:2017-06-27 23:01:51

标签: python h5py

我有这个:

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)

1 个答案:

答案 0 :(得分:1)

您的数据数组似乎有可变长度的行。是否要将整个data写入单个数据集,或者是否要将数据的每一行写入不同的数据集?在第一种情况下,您需要修复数据数组以使行长度相等(并且代码中的循环没有意义),在后一种情况下,您需要修复数据集名称(即,提供唯一的name对于每一行)并在代码中设置data=ii,在下面的代码中设置d):

with h5py.File(filename, 'w') as hf:
    for n, d in enumerate(data):
        hf.create_dataset(name = 'dataset{:d}'.format(n), data=d)