Conjuntos de datos en cadena de múltiples archivos / conjuntos de datos HDF5

Los beneficios y el mapeo simplista queh5py proporciona (a través de HDF5) para conjuntos de datos persistentes en el disco es excepcional. Ejecuto algunos análisis en un conjunto de archivos y almaceno el resultado en un conjunto de datos, uno para cada archivo. Al final de este paso, tengo un conjunto deh5py.Dataset objetos que contienen matrices 2D. Todas las matrices tienen el mismo número de columnas, pero diferente número de filas, es decir, (A, N), (B, N), (C, N), etc.

Ahora me gustaría acceder a estos múltiples arreglos 2D como un solo arreglo 2D. Es decir, me gustaría leerlos a pedido como una matriz de formas (A + B + C, N).

Para este propósito,h5py.Link Las clases no ayudan, ya que funciona a nivel de nodos HDF5.

Aquí hay un pseudocódigo:

import numpy as np
import h5py
a = h5py.Dataset('a',data=np.random.random((100, 50)))
b = h5py.Dataset('b',data=np.random.random((300, 50)))
c = h5py.Dataset('c',data=np.random.random((253, 50)))

# I want to view these arrays as a single array
combined = magic_array_linker([a,b,c], axis=1)
assert combined.shape == (100+300+253, 50)

Para mis propósitos, las sugerencias de copiar las matrices en un nuevo archivo no funcionan. También estoy abierto a resolver esto en el nivel numpy, pero no encuentro ninguna opción adecuada connumpy.view onumpy.concatenate eso funcionaría sin copiar los datos.

¿Alguien sabe de una manera de ver múltiples matrices como un conjunto de matrices apiladas, sin copiar y desdeh5py.Dataset?

Respuestas a la pregunta(1)

Su respuesta a la pregunta