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 ]])