Tak więc w tablicach numpy jest wbudowana funkcja uzyskiwania wskaźników diagonalnych, ale nie mogę się zorientować, jak ustawić przekątną, zaczynając od prawego górnego rogu, a nie od lewego górnego rogu .Uzyskanie przeciwległej przekątnej tablicy numpy
Jest to normalny kod, aby uzyskać zaczynając od górnej lewej:
>>> import numpy as np
>>> array = np.arange(25).reshape(5,5)
>>> diagonal = np.diag_indices(5)
>>> array
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>> array[diagonal]
array([ 0, 6, 12, 18, 24])
więc co mogę używać, jeśli chcę wrócić:
array([ 4, 8, 12, 16, 20])
Zacząłeś rzecz rozrządu, więc tu jest mój najlepszy strzał na uczynienie go szybko: 'krok = len (tablica) - 1; np.take (tablica, np.arange (step, array.size, step)) ' – Jaime
@Jimeime: To świetnie - znacznie szybciej niż moje rozwiązanie. Być może jednak potrzebujemy 'np.arange (step, array.size-1, step)'? Proszę, zaksięguj to jako rozwiązanie, aby móc głosować. – unutbu
Mam Zen Zen Pythona Tima Petersa wiszącego na mojej ścianie sześcianu, tuż przy moim monitorze. Nie mogę zaksięgować kodu komentarza jako odpowiedzi, podczas gdy ** liczy się czytelność ** patrzy na mnie ...: P Twoje rozwiązanie z 'fliplr' jest prawdopodobnie najlepsze: wystarczająco szybko i dużo, o wiele bardziej zrozumiałe, gdy ponownie je przeglądasz kilka miesięcy po napisaniu tego. – Jaime