Używam linalg.eig (A), aby uzyskać wartości własne i wektory własne macierzy. Czy istnieje prosty sposób sortowania tych wartości własnych (i powiązanych wektorów) w kolejności?python numpy sort wartości własne
Odpowiedz
Chcesz używać funkcji NumPy sort()
i argsort()
. argsort()
zwraca permutacji wskaźników potrzebnych do sortowania tablicy, więc jeśli chcesz, aby posortować według wartości własnej wielkości (średnia sortowania tablic numpy wydaje się być najmniejszym do największych), można zrobić:
import numpy as np
A = np.asarray([[1,2,3],[4,5,6],[7,8,9]])
eig_vals, eig_vecs = np.linalg.eig(A)
eig_vals_sorted = np.sort(eig_vals)
eig_vecs_sorted = eig_vecs[:, eig_vals.argsort()]
# Alternatively, to avoid making new arrays
# do this:
sort_perm = eig_vals.argsort()
eig_vals.sort() # <-- This sorts the list in place.
eig_vecs = eig_vecs[:, sort_perm]
W twoim drugim przykładzie, bez potrzeby ponownie wywołaj sort() na eig_vals, masz już sort_perm. tj. eig_vals = eig_vals [sort_perm] – user545424
Dobra rada! Nie byłem pewien, czy użycie notacji plastra "[]" stworzyło dodatkową kopię listy. Myślałem, że przynajmniej jedno z nich może być wykonane na miejscu, i nie wiedziałem, czy 'a = a [sort_perm]' jest równie efektywne jak 'a.sort()'. – ely
tak, mogę zrobić małą analizę porównawczą i opublikować wyniki – user545424
np.linalg.eig
często zwraca wartości zespolone. Możesz rozważyć użycie np.sort_complex(eig_vals)
.
- 1. Numpy: Uogólnione zagadnienie własne
- 2. Python .sort() nie działa zgodnie z oczekiwaniami
- 3. python numpy arange nieoczekiwane wyniki
- 4. scipy.linalg.eig zwracają złożone wartości własne macierzy kowariancji?
- 5. Rzadkie wartości własne przy użyciu eigen3/sparse
- 6. python numpy machine epsilon
- 7. Python numpy tablicy zastępując
- 8. python numpy savetxt
- 9. python numpy ln
- 10. python/Numpy/scipy: Rysowanie Poissona przypadkowe wartości z różnych lambda
- 11. Python: Split NumPy tablica na podstawie wartości w tablicy
- 12. Zakres ważnych wartości numpy
- 13. Podstawowe przypisanie wartości tablicy Numpy
- 14. Swift Stabilny sort?
- 15. Debugowanie wycieku pamięci Python/NumPy
- 16. Przetłumacz matlab na python/numpy
- 17. Python/NumPy Pierwsze wystąpienie podwielokrotności
- 18. Numpy Zainstaluj Mac Osx Python
- 19. Numpy float64 vs Python float
- 20. python numpy parami edit-distance
- 21. python numpy/scipy curve fitting
- 22. szybkie python numpy gdzie funkcjonalność?
- 23. python: numpy: połączeniem wymienionych tablic
- 24. Szybkie przetwarzanie macierzy wydajności w Numpy/Python
- 25. Python numpy.random.normal tylko pozytywne wartości
- 26. python: łącz sort-key-funkcje itemgetter i str.lower
- 27. Angular 2 Sort List Animations
- 28. Sort Mismatch w Modelu
- 29. sort-strunowe numery
- 30. wyjątkowy/sort w data.frame
Prawdopodobny duplikat: http://stackoverflow.com/questions/8092920/sort-eigenvalues-and-associated-evevectors-after-using-numpy-linalg-eig-in-pyt – amcnabb