Trocando as dimensões de uma matriz numpy

Eu gostaria de fazer o seguinte:

for i in dimension1:
  for j in dimension2:
    for k in dimension3:
      for l in dimension4:
        B[k,l,i,j] = A[i,j,k,l]

sem o uso de loops. No final, A e B contêm as mesmas informações, mas indexadas de maneira diferente.

Devo salientar que as dimensões 1,2,3 e 4 podem ser iguais ou diferentes. Portanto, um numpy.reshape () parece difícil.

questionAnswers(5)

yourAnswerToTheQuestion