Python – Sorting arrays in NumPy by column

arraysnumpypythonscipysorting

How can I sort an array in NumPy by the nth column?

For example,

a = array([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5]])

I'd like to sort rows by the second column, such that I get back:

array([[7, 0, 5],
       [9, 2, 3],
       [4, 5, 6]])

Best Answer

To sort by the second column of a:

a[a[:, 1].argsort()]