Mam dwie taktyczne liczby 2D, reprezentujące odległości x/y pomiędzy trzema punktami. Potrzebuję odległości x/y jako krotek w jednej tablicy.Łączenie dwóch tablic 2D numpy w pojedynczą tablicę 2D z 2-krotkami
Więc od:
x_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
y_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
muszę:
dists = array([[[ 0, 0], [-1, -1], [-2, -2]],
[[ 1, 1], [ 0, 0], [-1, -1]],
[[ 2, 2], [ 1, 1], [ 0, 0]]])
Próbowałem przy użyciu różnych permutacji dstack/hstack/vstack/concatenate, ale żaden z nich nie wydają się zrobić to, co chcę . Rzeczywiste tablice w kodzie mogą być gigantyczne, więc iteracja nad elementami w pythonie i wykonanie "ręcznego" przegrupowania nie jest opcją na szybkość.
Edit: To co wymyśliłem w końcu: https://gist.github.com/807656
Czy to tylko przypadek, że '' y_dist' x_dist' i są takie same? Jakie jest znaczenie ujemnej odległości w Twojej aplikacji? Czy '_dist' zawsze będzie" symetryczny ", ale część górno-ośmiokątna będzie po prostu ujemna? Ile punktów spodziewasz się obsłużyć? Jaki jest cel tego układania tablic? Czy elementy byłyby w "optymalnej" kolejności do dalszych obliczeń? Po prostu kilka drobiazgów, dzięki – eat
To zbieg okoliczności. Przykładowymi punktami są (0, 0), (1, 1), (2, 2) dla zachowania zdrowia psychicznego. _dist jest rzeczywiście symetryczny. Celem układania tablic jest to, że mogę ich używać do przesuwania punktów. Zobacz powiązane informacje ogólne. – Zarkonnen