¿Crear una matriz multidimensional en mosaico mientras se elimina el subelemento del índice I'th de axis0?

Estaba tratando de colocar una matriz en mosaico donde cada índice es multidiscrecional. Luego elimino el i-ésimo subelemento de cada índice.

Por ejemplo, comenzando con esta matriz:

>>> a = np.array([[    1.     ,     7.     ,     0.     ],
                  [    2.     ,     7.     ,     0.     ],
                  [    3.     ,     7.     ,     0.     ]])
>>> a = np.tile(a, (a.shape[0],1,1))

>>> print a
array([[[    1.     ,     7.     ,     0.     ],
        [    2.     ,     7.     ,     0.     ],
        [    3.     ,     7.     ,     0.     ]],

       [[    1.     ,     7.     ,     0.     ],
        [    2.     ,     7.     ,     0.     ],
        [    3.     ,     7.     ,     0.     ]],

       [[    1.     ,     7.     ,     0.     ],
        [    2.     ,     7.     ,     0.     ],
        [    3.     ,     7.     ,     0.     ]]])

Salida deseada:

b = np.array([[[    2.     ,     7.     ,     0.     ],
               [    3.     ,     7.     ,     0.     ]],

              [[    1.     ,     7.     ,     0.     ],
               [    3.     ,     7.     ,     0.     ]],

              [[    1.     ,     7.     ,     0.     ],
               [    2.     ,     7.     ,     0.     ]]])

Me preguntaba si había una forma más eficiente de generar esta salida sin tener que crear una matriz grande primero y luego eliminarla.

[ACTUALIZAR]

La intención detrás de esta permutación fue como un intento de vectorizar en lugar de usar python for-loops. La respuesta proporcionada por Divakar ha sido de gran ayuda para lograr esta tarea. También me gustaría vincular aesta publicación que muestra lo contrario a esta permutación, y fue útil para reorganizar las cosas para sumar todos los valores cuando terminé.

Además, intento utilizar la misma técnica de permutación en un tensor con Tensorflow (consulteesta publicación)

Respuestas a la pregunta(1)

Su respuesta a la pregunta