2016-06-17 11 views
3

Gibt es in h5py die Möglichkeit, einen Datensatz zu erstellen, der aus String-Listen besteht. Ich habe versucht, einen geschachtelten Datentyp variabler Länge zu erstellen, aber das führt zu Segmentierungsfehlern in meinem Python-Interpreter.H5py Speicherliste der String-Liste

def create_dataset(h5py_file): 
    data = [['I', 'am', 'a', 'sentecne'], ['another', 'sentence']] 
    string_dt = h5py.special_dtype(vlen=str) 
    nested_dt = h5py.special_dtype(vlen=string_dt) 
    h5py_file.create_dataset("sentences", data=data, dtype = nested_dt) 

Antwort

2

Sie sollten die Funktionalität, die Sie mögen, erhalten können, wenn Sie Ihre Daten als numpy Array von dtype = Objekt definieren, wie in diesen post vorgeschlagen, anstatt eine Liste von Listen.

def create_dataset(h5py_file): 
    data = np.array([['I', 'am', 'a', 'sentence'], ['another', 'sentence']], dtype=object) 
    string_dt = h5py.special_dtype(vlen=str) 
    h5py_file.create_dataset("sentences", data=data, dtype=string_dt) 
0

Wenn Sie nicht beabsichtigen, die hdf5 Datei (und möglicherweise längere Strings verwenden) zu bearbeiten, können Sie auch einfach verwenden:

h5py_file.create_dataset("sentences", data=np.array(data, dtype='S')) 
Verwandte Themen