Python numpy array de matrices numpy

Tengo un problema al crear una matriz numpy de matrices numpy. Lo crearía en un bucle:

a=np.array([]) while(...): ... b= //a numpy array generated a=np.append(a,b) ... 

Resultado deseado:

 [[1,5,3], [9,10,1], ..., [4,8,6]] 

Resultado real:

 [1,5,3,9,10,1,... 4,8,6] 

¿Es posible? No conozco la dimensión final de la matriz, por lo que no puedo inicializarla con una dimensión fija.

Nunca agregue a numpy matrices numpy en un bucle: es la única operación en la que NumPy es muy malo en comparación con Python básico. Esto se debe a que está haciendo una copia completa de los datos de cada append , lo que le costará tiempo cuadrático.

En su lugar, simplemente agregue sus matrices a una lista de Python y conviértala al final; El resultado es más simple y más rápido:

 a = [] while ...: b = ... # NumPy array a.append(b) a = np.asarray(a) 

En cuanto a por qué su código no funciona: np.append no se comporta como list.append en absoluto. En particular, no creará nuevas dimensiones al anexar. Tendría que crear la matriz inicial con dos dimensiones, luego adjuntar con un argumento de eje explícito.