Criando uma matriz multidimensional em mosaico enquanto remove o subelemento do índice de eixo0?

Eu estava tentando agrupar uma matriz em que cada índice é multi-dimensional. Em seguida, removo o i-ésimo sub-elemento de cada índice.

Por exemplo, começando com 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.     ]]])

Saída desejada:

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

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

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

Eu queria saber se havia uma maneira mais eficiente de gerar essa saída sem ter que criar uma grande matriz primeiro e depois excluir?

[ATUALIZAR]

A intenção por trás dessa permutação era como uma tentativa de vetorizar em vez de usar loops for-python. A resposta fornecida por Divakar tem sido uma grande ajuda para a realização desta tarefa. Eu também gostaria de criar um link paraesta postagem que mostra o inverso dessa permutação e foi útil para reorganizar as coisas para somar todos os valores quando eu terminei.

Além disso, estou tentando usar a mesma técnica de permutação em um tensor com Tensorflow (consulteesta postagem)

questionAnswers(1)

yourAnswerToTheQuestion