¿Cómo puedo rotar una matriz 3D?

Actualmente, si quiero comparar la presión debajo de cada una de las patas de un perro, solo comparo la presión debajo de cada dedo del pie. Pero quiero intentar comparar las presiones debajo de toda la pata.

Pero para hacerlo tengo que rotarlos, para que los dedos se superpongan (mejor). Debido a que la mayoría de las veces las patas izquierda y derecha están ligeramente giradas externamente, por lo que si no puede simplemente proyectar una encima de la otra. Por lo tanto, quiero rotar las patas, para que estén todas alineadas de la misma manera.

Actualmente, calculo el ángulo de rotación, mirando hacia arriba los dos dedos del medio y el traserousando la detección del dedo del pie luego calculo el ángulo entre la línea amarilla (eje entre los dedos verde y rojo) y la línea verde (eje neutro).

Ahora quiero rotar la matriz rotaría alrededor del dedo del pie trasero, de modo que las líneas amarilla y verde estén alineadas. ¿Pero cómo hago esto?

Tenga en cuenta que si bien esta imagen es solo 2D (solo los valores máximos de cada sensor), quiero calcular esto en una matriz 3D (10x10x50 en promedio). También una desventaja de mi cálculo de ángulo es que es muy sensible a la detección del dedo del pie, por lo que si alguien tiene una propuesta matemáticamente más correcta para calcular esto, soy todo oídos.

He visto un estudio con mediciones de presión en humanos, donde utilizaron el método del eje inercial geométrico local, que al menos era muy confiable. ¡Pero eso todavía no me ayuda a explicar cómo rotar la matriz!

Si alguien siente la necesidad de experimentar, aquí hay un archivo contodas las matrices en rodajas que contienen los datos de presión de cada pata. Para aclarar: walk_sliced_data es un diccionario que contiene ['ser_3', 'ser_2', 'sel_1', 'sel_2', 'ser_1', 'sel_3'], que son los nombres de las mediciones. Cada medida contiene otro diccionario, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (ejemplo de 'sel_1') que representan los impactos que se extrajeron.

Respuestas a la pregunta(2)

Su respuesta a la pregunta