Mastering ndarray.sort() method in NumPy (5 examples)

Updated: February 26, 2024 By: Guest Contributor Post a comment

Introduction

NumPy, short for Numerical Python, is a fundamental package for high-performance scientific computing and data analysis in Python. It introduces the powerful n-dimensional array object, or ndarray, which is a fast, flexible container for large datasets in Python. Sorting is a vital operation on datasets, and NumPy provides an efficient way to sort arrays through the ndarray.sort() method. This tutorial will guide you through mastering the ndarray.sort() method in NumPy, illustrated with five examples graded from basic to advanced.

Example 1: Basic Sorting

The simplest way to use the sort() method is to apply it directly to a one-dimensional NumPy array. By default, it sorts the array in ascending order, modifying the array in place.

import numpy as np

arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
arr.sort()
print(arr)

Output:

[1, 1, 2, 3, 4, 5, 6, 9]

Example 2: Sorting in Descending Order

To sort an array in descending order, you can combine the sort() method with array slicing. First, sort the array in ascending order, then reverse it using slicing.

import numpy as np

arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
arr.sort()
arr = arr[::-1]
print(arr)

Output:

[9, 6, 5, 4, 3, 2, 1, 1]

Example 3: Sorting Multi-dimensional Arrays

The sort() method is also very versatile with multi-dimensional arrays. You can specify the axis along which to sort. By default, it sorts along the last axis (-1).

import numpy as np

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

Output:

[[2, 0, 1],
 [5, 3, 4],
 [9, 6, 7]]

You can also sort along other axes. For instance, to sort each row in ascending order:

arr.sort(axis=1)
print(arr)

Output:

[[0, 1, 2],
 [3, 4, 5],
 [6, 7, 9]]

Example 4: Using the kind Argument

NumPy’s sort() method supports multiple sorting algorithms through the kind argument. This includes ‘quicksort’ (default), ‘mergesort’, ‘heapsort’, and more. Different algorithms may perform better based on the array’s data or size.

import numpy as np

arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
arr.sort(kind='heapsort')
print(arr)

Output:

[1, 1, 2, 3, 4, 5, 6, 9]

Example 5: Sorting with a Structured Array

NumPy allows for the creation of arrays with structured datatypes, permitting arrays to contain records with specified datatypes for each element. You can sort these arrays by any field.

import numpy as np

dtype = [('name', 'S10'), ('height', float), ('age', int)]
people = np.array([('Alice', 1.65, 25), ('Bob', 1.85, 32), ('Cathy', 1.70, 45)], dtype=dtype)
people.sort(order='height')
print(people)

Output:

[('Alice', 1.65, 25) ('Cathy', 1.70, 45) ('Bob', 1.85, 32)]

Conclusion

The ndarray.sort() method in NumPy is a powerful tool for managing and organizing data, offering various levels of complexity to suit a range of needs, from basic sorting operations to sorting complex structured data. By understanding these examples, you should now feel confident applying these techniques to your own NumPy arrays.