Almacenamiento de matriz de longitud variable multidimensional con h5py

Estoy tratando de almacenar una lista de matrices de longitud variable en un archivo HDF con el siguiente procedimiento:

phn_mfccs = []

# Import wav files
for waveform in files:
    phn_mfcc = mfcc(waveform) # produces a variable length multidim array of the shape (x, 13, 1)              

    # Add MFCC and label to dataset
    # phn_mfccs has dimension (len(files),)
    # phn_mfccs[i] has variable dimension ([# of frames in ith segment] (variable), 13, 1)
    phn_mfccs.append(phn_mfcc) 

dt = h5py.special_dtype(vlen=np.dtype('float64'))
mfccs_out.create_dataset('phn_mfccs', data=phn_mfccs, dtype=dt)

Sin embargo, parece que mis tipos de datos no funcionan: en lugar de que cada elemento del conjunto de datos mfccs_out contenga una matriz multidimensional, contiene solo una matriz 1D. p.ej. si el primerophn_mfcc Añado originalmente tiene dimensión(59,13,1), mfccs_out['phn_mfccs'][0] tiene dimensión(59,). Sospecho que es porque solo estoy usando un tipo de datos float64 y necesito algo más para una matriz de matrices. Si no especifico el conjunto de datos o intento usardtype='O', sin embargo, escupe un error como "Tipo de objeto 'O' no tiene equivalente HDF nativo".

Idealmente, lo que me gustaría es paramfccs_out['phn_mfccs'][i] para contener el ithphn_mfcc que agregué a la listaphn_mfccs.

Respuestas a la pregunta(1)

Su respuesta a la pregunta