Reorganizando uma matriz MxN 2D de pontos de dados em uma matriz N-dimensional

Eu tenho uma série de medidas em uma matriz 2D, como

T    mu1  mu2  mu3  a    b    c    d    e
0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  0.0  2.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  0.0  3.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  1.0  1.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0
0.0  0.0  1.0  3.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  2.0  1.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  2.0  2.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  2.0  3.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  3.0  0.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  3.0  1.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  3.0  2.0  0.0  0.0  0.0  0.0  0.0
0.0  1.0  3.0  3.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  0.0  2.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  0.0  3.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  1.0  1.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0
1.0  0.0  1.0  3.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  2.0  1.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  2.0  2.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  2.0  3.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  3.0  0.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  3.0  1.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  3.0  2.0  0.0  0.0  0.0  0.0  0.0
1.0  1.0  3.0  3.0  0.0  0.0  0.0  0.0  0.0

OndeT, mu1, mu2 emu3 são os 4 eixos das variáveis que eu controle (variáveis independentes).a, b, c, d ee são as medidas que eu fiz (variáveis dependentes).

Gostaria de converter essa matriz 2D em uma matriz 5D em numpy. EspecificandoT, mu1, mu2 emu3 (ou pelo menos os quatro índices) quero recuperar o valor correspondentea, b, c, d ee valores.

Existe uma maneira direta de remodelar esse tipo de matriz, especificando a quais colunas os eixos correspondem? oMultiIndex nos Pandas parecia organizá-lo de maneira inteligente em uma tabela, mas parece inadequado para matrizes de alta dimensão. Não necessariamente vou saber antecipadamente qual deve ser a forma do ndarray, mas parece-me que, com base nos valores, deve ser possível remodelar a matriz adequadamente. Os valores de incremento para cada eixo também podem ser diferentes, mas sempre serão uniformes.

Minha idéia atual envolve ignorar omu1, mu2 emu3 colunas e conjuntos de empilhamento deT dados em uma matriz 3D. A partir daí eu empilharia conjuntos de 3Dmu1 dados em uma matriz 4D e repita o processo commu2 emu3. Parece um processo tedioso que deve ter uma solução simples.

questionAnswers(1)

yourAnswerToTheQuestion