2016-03-24 4 views
1

So erstellen Sie ein HDF5-Dataset, wenn die Größe einer Dimension eines mehrdimensionalen Arrays nicht festgelegt ist. Ich habe den folgenden Spielzeugcode ausprobiert, aber es scheint, dass ich hier einen Punkt vermisse.Wie behandelt man ein Array variabler Größe beim Erstellen eines HDF5-Datasets in Python?

import numpy as np 

import h5py 


Polyline=h5py.special_dtype(vlen=np.float32) 

f=h5py.File('dataset.hdf5', mode='w') 

var_features=f.create_dataset('var_features', (10,), dtype=Polyline) 

features = np.empty(shape=(10,), dtype=Polyline) 

for i in range(10): 

    a=10+i*2 
    features[i]=np.arange(a).reshape(a/2,2) 

var_features[...]=features 

print features[0].shape 

print var_features[0].shape 

Antwort

0

Es ist ganz einfach, erstellen Sie einfach Datensatz mit maxsize Attribut mit einem oder mehreren None Werte.

Etwas wie folgt aus:

import h5py 
import numpy as np 

fff = h5py.File('test1.h5','w') 
fff.create_dataset('test_resize',(100,100),maxshape=(None,None),chunks=(10,10)) 
fff['test_resize'][:] = np.random.random((100,100)) 
fff.flush() 
fff['test_resize'].resize((150,100)) 
fff['test_resize'][100:150,:] = np.ones((50,100)) 
fff.close() 
Verwandte Themen