una transponer matriz inversa array python arrays numpy reshape

python - transponer - Reformar una matriz en NumPy



transponer matriz python (1)

Considere una matriz de la siguiente forma (solo un ejemplo):

[[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9] [10 11] [12 13] [14 15] [16 17]]

Su forma es [9,2]. Ahora quiero transformar la matriz para que cada columna se convierta en una forma [3,3], como esta:

[[ 0 6 12] [ 2 8 14] [ 4 10 16]] [[ 1 7 13] [ 3 9 15] [ 5 11 17]]

La solución más obvia (y seguramente "no pitónico") es inicializar una matriz de ceros con la dimensión adecuada y ejecutar dos bucles for donde se llenará de datos. Estoy interesado en una solución que se ajuste al idioma ...


a = np.arange(18).reshape(9,2) b = a.reshape(3,3,2).swapaxes(0,2) # a: array([[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7], [ 8, 9], [10, 11], [12, 13], [14, 15], [16, 17]]) # b: array([[[ 0, 6, 12], [ 2, 8, 14], [ 4, 10, 16]], [[ 1, 7, 13], [ 3, 9, 15], [ 5, 11, 17]]])