Tengo dos matrices numpy 2D como esta, que representan las distancias x/y entre tres puntos. Necesito las distancias x/y como tuplas en una sola matriz.Unir dos matrices numpy 2D en una única matriz 2D de 2 tuplas
Así que a partir de:
x_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
y_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
necesito:
dists = array([[[ 0, 0], [-1, -1], [-2, -2]],
[[ 1, 1], [ 0, 0], [-1, -1]],
[[ 2, 2], [ 1, 1], [ 0, 0]]])
He intentado usar varias permutaciones de dstack/hstack/vstack/concatenar, pero ninguno de ellos parecen hacer lo que quiera . Las matrices reales en el código son susceptibles de ser gigantescas, por lo que iterar sobre los elementos en python y hacer la reordenación "manualmente" no es una opción a la velocidad.
Editar: Esto es lo que me ocurrió en el final: https://gist.github.com/807656
IS es sólo una coincidencia que '' x_dist' y y_dist' son los mismos? ¿Cuál es el significado de la distancia negativa en su aplicación? ¿'_dist' sería siempre 'simétrico', pero la parte uppertridiagonal sería simplemente negativa? ¿Cuántos puntos espera manejar? ¿Cuál es el propósito de este apilamiento de matrices? ¿Los elementos estarían en orden "óptimo" para más cálculos? Sólo algunos duros, gracias – eat
Es una coincidencia. Los puntos de ejemplo son (0, 0), (1, 1), (2, 2) por motivos de cordura. _dist es de hecho simétrico. El objetivo de apilar las matrices es que puedo usarlas para mover los puntos. Ver la esencia vinculada – Zarkonnen