sort eigenvalues and associated eigenvectors after using numpy.linalg.eig in python
Question: I'm using numpy.linalg.eig to obtain a list of eigenvalues and eigenvectors:

    
    
    A = someMatrixArray
    from numpy.linalg import eig as eigenValuesAndVectors
    
    solution = eigenValuesAndVectors(A)
    
    eigenValues = solution[0]
    eigenVectors = solution[1]
    

I would like to sort my eigenvalues (e.g. from lowest to highest), in a way I
know what is the associated eigenvector after the sorting.

I'm not finding any way of doing that with python functions. Is there any
simple way or do I have to code my sort version?


Answer: Use
[numpy.argsort](http://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html#numpy.argsort).
It returns the indices one would use to sort the array.

    
    
    import numpy as np
    import numpy.linalg as linalg
    
    A = np.random.random((3,3))
    eigenValues,eigenVectors = linalg.eig(A)
    
    idx = eigenValues.argsort()[::-1]   
    eigenValues = eigenValues[idx]
    eigenVectors = eigenVectors[:,idx]
    

