Sort#

As in Python’s list, NumPy arrays can be sorted in-place using the numpy.sort method. You can sort any one-dimensional section of values in a multidimensional array in place along an axis by passing the axis number to sort:

[1]:
import numpy as np


data = np.random.randn(7, 3)

data
[1]:
array([[-0.50687148, -0.92123541, -1.33470444],
       [-0.47316782, -0.05354427,  0.3144167 ],
       [-0.51270165, -1.30401598, -0.9362869 ],
       [-0.19429791,  1.12032183,  0.19184738],
       [ 0.07609175,  1.75052865, -1.27389361],
       [ 1.03374626, -0.29737004,  0.0944219 ],
       [ 0.82837672, -0.29511481, -0.25849806]])
[2]:
data.sort(0)

data
[2]:
array([[-0.51270165, -1.30401598, -1.33470444],
       [-0.50687148, -0.92123541, -1.27389361],
       [-0.47316782, -0.29737004, -0.9362869 ],
       [-0.19429791, -0.29511481, -0.25849806],
       [ 0.07609175, -0.05354427,  0.0944219 ],
       [ 0.82837672,  1.12032183,  0.19184738],
       [ 1.03374626,  1.75052865,  0.3144167 ]])

np.sort, on the other hand, returns a sorted copy of an array instead of changing the array in place:

[3]:
np.sort(data, axis=1)
[3]:
array([[-1.33470444, -1.30401598, -0.51270165],
       [-1.27389361, -0.92123541, -0.50687148],
       [-0.9362869 , -0.47316782, -0.29737004],
       [-0.29511481, -0.25849806, -0.19429791],
       [-0.05354427,  0.07609175,  0.0944219 ],
       [ 0.19184738,  0.82837672,  1.12032183],
       [ 0.3144167 ,  1.03374626,  1.75052865]])
[4]:
data
[4]:
array([[-0.51270165, -1.30401598, -1.33470444],
       [-0.50687148, -0.92123541, -1.27389361],
       [-0.47316782, -0.29737004, -0.9362869 ],
       [-0.19429791, -0.29511481, -0.25849806],
       [ 0.07609175, -0.05354427,  0.0944219 ],
       [ 0.82837672,  1.12032183,  0.19184738],
       [ 1.03374626,  1.75052865,  0.3144167 ]])