Tôi đang sử dụng linalg.eig (A) để lấy các giá trị riêng và các giá trị riêng của ma trận. Có cách nào dễ dàng để sắp xếp các giá trị riêng này (và các vector liên quan) theo thứ tự không?python numpy sort eigenvalues
Trả lời
Bạn muốn sử dụng các chức năng NumPy sort()
và argsort()
. argsort()
trả về hoán vị của các chỉ số cần thiết để sắp xếp một mảng, vì vậy nếu bạn muốn sắp xếp theo độ lớn eigenvalue (loại tiêu chuẩn cho mảng NumPy có vẻ là nhỏ nhất đến lớn), bạn có thể làm:
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]
Trong ví dụ thứ hai của bạn, không cần phải gọi sắp xếp() trên eig_vals một lần nữa, bạn đã có sort_perm. tức là eig_vals = eig_vals [sort_perm] – user545424
Điểm tốt! Tôi không chắc liệu có sử dụng ký hiệu slice hay không '[]' đã tạo thêm một bản sao của danh sách. Suy nghĩ của tôi là ít nhất một trong số chúng có thể được thực hiện tại chỗ, và tôi không biết liệu 'a = a [sort_perm]' có hiệu quả như 'a.sort()' hay không. – ely
vâng, tôi có thể làm một ít điểm chuẩn và đăng kết quả – user545424
np.linalg.eig
thường sẽ trả về các giá trị phức tạp. Bạn có thể cân nhắc sử dụng np.sort_complex(eig_vals)
.
- 1. python numpy savetxt
- 2. python NumPy MKL LỖI
- 3. Numpy với python 3.0
- 4. python NumPy ln
- 5. Tại sao '.sort()' khiến danh sách là 'Không' trong Python?
- 6. Numpy Array đến base64 và quay lại Numpy Array - Python
- 7. Dịch matlab sang python/numpy
- 8. python numpy roll với padding
- 9. Python mảng NumPy thay thế
- 10. MySQL double sort
- 11. gradient descent sử dụng python và NumPy
- 12. python nhanh numpy nơi chức năng?
- 13. python numpy arange kết quả bất ngờ
- 14. Python NumPy - FFT và FFT nghịch đảo?
- 15. mảng numpy Python vs danh sách
- 16. pymongo sort and find_one issue
- 17. Sử dụng .sort với PyMongo
- 18. tăng zip_iterator và std :: sort
- 19. Tại sao là "sắp xếp()" chậm hơn so với "bản sao, sau đó .sort()" Python của
- 20. Thuật toán của JavaScript "sort()" Chức năng
- 21. SortedList so với SortedDictionary vs. Sort()
- 22. Có std :: sort triển khai Quicksort?
- 23. Sort Guava Multimap theo số giá trị
- 24. Tài liệu jQuery .sort() ở đâu?
- 25. Cài đặt numpy
- 26. mảng python hiệu quả để chuyển đổi mảng numpy
- 27. Nhúng Python/Numpy/Matplotlib trong ứng dụng C++ Qt?
- 28. Thuật ngữ: Python và Numpy - `iterable` so với` array_like`
- 29. Python/NumPy lần xuất hiện đầu tiên của subarray
- 30. Gỡ lỗi rò rỉ bộ nhớ Python/NumPy
Có thể trùng lặp: http://stackoverflow.com/questions/8092920/sort-eigenvalues-and-associated-eigenvectors-after-using-numpy-linalg-eig-in-pyt – amcnabb