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)