Bird
Raised Fist0
NumPydata~5 mins

np.sort() for sorting arrays in NumPy

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

We use np.sort() to arrange numbers or values in order. This helps us see data clearly and find things like smallest or biggest values easily.

When you want to find the smallest or largest numbers in a list of data.
When you need to organize data before analyzing it, like sorting test scores.
When you want to prepare data for graphs that need ordered values.
When you want to compare data points in order, such as ranking players by scores.
When you want to clean up data by sorting it to spot duplicates or errors.
Syntax
NumPy
import numpy as np

sorted_array = np.sort(array, axis=-1, kind='quicksort', order=None)

array is the input array you want to sort.

axis decides which direction to sort: -1 means sort the last axis (e.g., each row if 2D, or the whole array if 1D).

Examples
This sorts a simple list of numbers from smallest to largest.
NumPy
import numpy as np

# Example 1: Sort a 1D array
array_1d = np.array([3, 1, 4, 1, 5])
sorted_1d = np.sort(array_1d)
print(sorted_1d)
This sorts each row separately, so each row's numbers go from smallest to largest.
NumPy
import numpy as np

# Example 2: Sort a 2D array along rows (axis=1)
array_2d = np.array([[3, 2, 1], [6, 5, 4]])
sorted_2d = np.sort(array_2d, axis=1)
print(sorted_2d)
Sorting an empty array returns an empty array without error.
NumPy
import numpy as np

# Example 3: Sort an empty array
empty_array = np.array([])
sorted_empty = np.sort(empty_array)
print(sorted_empty)
Sorting an array with one element returns the same array.
NumPy
import numpy as np

# Example 4: Sort a 1D array with one element
single_element_array = np.array([42])
sorted_single = np.sort(single_element_array)
print(sorted_single)
Sample Program

This program shows how to sort each row of a 2D array. Each row represents a student's scores, and sorting helps us see their scores from lowest to highest.

NumPy
import numpy as np

# Create a 2D array
scores = np.array([[88, 92, 79], [95, 85, 91], [70, 78, 88]])

print("Original scores:")
print(scores)

# Sort each student's scores (each row) from lowest to highest
sorted_scores = np.sort(scores, axis=1)

print("\nSorted scores by student:")
print(sorted_scores)
OutputSuccess
Important Notes

Time complexity: np.sort() usually runs in O(n log n) time, where n is the number of elements to sort.

Space complexity: It creates a new sorted array, so it uses extra memory equal to the size of the input array.

A common mistake is forgetting to specify axis when sorting multi-dimensional arrays, which can lead to unexpected sorting directions.

Use np.sort() when you want a sorted copy of the array without changing the original. Use array.sort() if you want to sort the array in place.

Summary

np.sort() helps arrange data in order, making it easier to analyze.

You can sort 1D or multi-dimensional arrays by choosing the right axis.

It returns a new sorted array, leaving the original data unchanged.

Practice

(1/5)
1. What does the np.sort() function do when applied to a NumPy array?
easy
A. It returns a new array with elements sorted in ascending order.
B. It changes the original array to sorted order in place.
C. It reverses the order of elements in the array.
D. It removes duplicate elements from the array.

Solution

  1. Step 1: Understand np.sort() behavior

    The np.sort() function returns a new sorted array and does not modify the original array.
  2. Step 2: Identify the sorting order

    By default, np.sort() sorts elements in ascending order.
  3. Final Answer:

    It returns a new array with elements sorted in ascending order. -> Option A
  4. Quick Check:

    np.sort() returns sorted copy [OK]
Hint: np.sort() returns a new sorted array, original stays same [OK]
Common Mistakes:
  • Thinking np.sort() sorts in place
  • Confusing sorting with reversing
  • Assuming it removes duplicates
2. Which of the following is the correct syntax to sort a 1D NumPy array named arr using np.sort()?
easy
A. np.sort(arr)
B. arr.sort()
C. np.sort(arr, axis=1)
D. arr.sorted()

Solution

  1. Step 1: Recall np.sort() syntax

    The correct way to sort an array using the function is np.sort(arr).
  2. Step 2: Check other options

    arr.sort() sorts in place but is a method, not np.sort(). np.sort(arr, axis=1) is invalid for 1D arrays. arr.sorted() is not a valid method.
  3. Final Answer:

    np.sort(arr) -> Option A
  4. Quick Check:

    np.sort(arr) is correct syntax [OK]
Hint: Use np.sort(array) to get sorted copy [OK]
Common Mistakes:
  • Using arr.sorted() which does not exist
  • Using axis=1 on 1D array
  • Confusing np.sort() with arr.sort() method
3. What is the output of the following code?
import numpy as np
arr = np.array([[3, 1, 2], [6, 4, 5]])
sorted_arr = np.sort(arr, axis=1)
print(sorted_arr)
medium
A. [[1 3 2] [4 6 5]]
B. [[3 1 2] [6 4 5]]
C. [[1 2 3] [4 5 6]]
D. [[3 6] [1 4] [2 5]]

Solution

  1. Step 1: Understand sorting along axis=1

    Sorting with axis=1 sorts each row independently in ascending order.
  2. Step 2: Sort each row

    First row [3,1,2] sorted is [1,2,3]. Second row [6,4,5] sorted is [4,5,6].
  3. Final Answer:

    [[1 2 3] [4 5 6]] -> Option C
  4. Quick Check:

    Row-wise sort = [[1 2 3], [4 5 6]] [OK]
Hint: axis=1 sorts each row separately [OK]
Common Mistakes:
  • Sorting columns instead of rows
  • Expecting original array unchanged in print
  • Confusing axis parameter meaning
4. The following code throws an error. What is the cause?
import numpy as np
arr = np.array([3, 1, 2])
sorted_arr = np.sort(arr, axis=1)
print(sorted_arr)
medium
A. np.sort() cannot sort integer arrays.
B. Missing parentheses in np.sort call.
C. The array must be converted to a list first.
D. Axis 1 does not exist for 1D arrays.

Solution

  1. Step 1: Check array dimensions

    The array arr is 1D, so it only has axis 0.
  2. Step 2: Understand axis parameter

    Using axis=1 on a 1D array causes an error because axis 1 does not exist.
  3. Final Answer:

    Axis 1 does not exist for 1D arrays. -> Option D
  4. Quick Check:

    1D array has only axis 0 [OK]
Hint: 1D arrays only have axis=0, axis=1 causes error [OK]
Common Mistakes:
  • Assuming axis=1 works on 1D arrays
  • Thinking np.sort can't handle integers
  • Believing array must be list to sort
5. Given a 2D NumPy array data = np.array([[7, 2, 9], [4, 5, 1], [8, 3, 6]]), how can you sort the entire array as if it were a flat list, then reshape it back to the original shape?
hard
A. np.sort(data, axis=0).reshape(data.shape)
B. np.sort(data, axis=None).reshape(data.shape)
C. data.sort(axis=1).reshape(data.shape)
D. np.sort(data).reshape(data.shape)

Solution

  1. Step 1: Flatten and sort the entire array

    Using axis=None in np.sort() sorts the array as a flat 1D array.
  2. Step 2: Reshape sorted array back to original shape

    Use .reshape(data.shape) to restore the 2D shape after sorting.
  3. Final Answer:

    np.sort(data, axis=None).reshape(data.shape) -> Option B
  4. Quick Check:

    axis=None sorts flat, reshape restores shape [OK]
Hint: Use axis=None to sort flat, then reshape [OK]
Common Mistakes:
  • Sorting only rows or columns instead of flat
  • Using data.sort() which sorts in place
  • Omitting reshape after sorting flat