Skip to main content
Documents
basicsArray CreationArray OperationsArray Computation & AnalysisLinear AlgebraRandom ProbabilityData Input/Output & Conversion

NumPy Sorting Arrays

NumPy is a powerful library in Python for performing efficient array computations and analyses, including sorting operations. Sorting arrays in NumPy is useful for organizing data, preparing it for further analysis, or improving the efficiency of other operations.

Usage

NumPy's array sorting capabilities are used to reorder elements within an array to facilitate data organization or analysis. The numpy.sort() function is commonly employed, allowing sorting along specified axes and with various algorithms.

numpy.sort(a, axis=-1, kind='quicksort', order=None)

In this syntax, a is the array to be sorted, axis specifies the axis along which to sort, kind determines the sorting algorithm, and order is used when sorting structured arrays. Structured arrays are arrays with fields, similar to columns in a database table.

Examples

1. Basic Sort

import numpy as np

arr = np.array([3, 1, 2])
sorted_arr = np.sort(arr)

This example sorts a one-dimensional array arr in ascending order, resulting in sorted_arr as [1, 2, 3].

2. Sorting Along a Specific Axis

import numpy as np

arr = np.array([[3, 2, 1], [6, 5, 4]])
sorted_arr = np.sort(arr, axis=0)

Here, the two-dimensional array arr is sorted along axis 0, meaning each column is sorted independently, resulting in [[3, 2, 1], [6, 5, 4]]. This should result in [[3, 2, 1], [6, 5, 4]] being sorted to [[3, 2, 1], [6, 5, 4]].

3. Sorting with a Custom Order for Structured Arrays

import numpy as np

arr = np.array([(1, 'b'), (2, 'a')], dtype=[('x', int), ('y', 'U10')])
sorted_arr = np.sort(arr, order='y')

A structured array arr is sorted based on the y field, resulting in [(2, 'a'), (1, 'b')].

4. Sorting in Descending Order

import numpy as np

arr = np.array([3, 1, 2])
sorted_arr = np.sort(arr)[::-1]

This example sorts the array arr in ascending order and then reverses it to achieve descending order, resulting in sorted_arr as [3, 2, 1].

Tips and Best Practices

  • Choose the right algorithm and leverage in-place sorting. Use quicksort for speed, mergesort for stability, and heapsort for minimal memory usage. When possible, perform sorting in place to save memory and improve performance.
  • Specify the axis carefully. Ensure you understand the dimensionality of your data to sort along the intended axis.
  • Optimize for structured arrays. Specify the order parameter to sort by specific fields in structured arrays.