Sorting data helps us organize numbers or values in order. Sorting along axes means arranging data row-wise or column-wise in arrays.
Sorting along axes in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
NumPy
numpy.sort(a, axis=-1, kind='quicksort', order=None)
a is the input array to sort.
axis decides which direction to sort: 0 for rows, 1 for columns, -1 for last axis (default).
Examples
NumPy
import numpy as np arr = np.array([[3, 1, 2], [6, 4, 5]]) sorted_arr = np.sort(arr, axis=1) print(sorted_arr)
NumPy
import numpy as np arr = np.array([[3, 1, 2], [6, 4, 5]]) sorted_arr = np.sort(arr, axis=0) print(sorted_arr)
Sample Program
This program creates a 2D array and sorts it first by rows, then by columns, showing how sorting along different axes changes the order.
NumPy
import numpy as np # Create a 2D array arr = np.array([[10, 3, 5], [7, 8, 2]]) # Sort along rows (axis=1) sorted_rows = np.sort(arr, axis=1) print('Sorted along rows:') print(sorted_rows) # Sort along columns (axis=0) sorted_cols = np.sort(arr, axis=0) print('Sorted along columns:') print(sorted_cols)
Important Notes
Sorting does not change the original array unless you assign the result back.
Use axis=0 to sort each row, axis=1 to sort each column.
Sorting is always in ascending order by default.
Summary
Sorting along axes organizes data row-wise or column-wise.
Use numpy.sort with axis parameter to control direction.
Sorting helps in data analysis by arranging values clearly.
Practice
1. What does the
axis parameter control in numpy.sort?easy
Solution
Step 1: Understand the role of
Theaxisin sortingaxisparameter tells numpy which direction to sort: 0 means sort each column, 1 means sort each row.Step 2: Differentiate from other parameters
Sorting algorithm type and order are controlled by other parameters, notaxis.Final Answer:
It decides whether to sort rows or columns in an array. -> Option AQuick Check:
axiscontrols direction = A [OK]
Hint: Remember axis=0 sorts columns, axis=1 sorts rows [OK]
Common Mistakes:
- Confusing axis with sorting order
- Thinking axis changes data type
- Assuming axis sets sorting algorithm
2. Which of the following is the correct syntax to sort a 2D numpy array
arr along rows?easy
Solution
Step 1: Identify axis for sorting rows
In a 2D array, axis=1 means sorting each row individually.Step 2: Check other options for validity
Axis=0 sorts columns, axis=None flattens the array into 1D before sorting, axis=2 is invalid for 2D arrays.Final Answer:
numpy.sort(arr, axis=1) -> Option CQuick Check:
axis=1 sorts rows = B [OK]
Hint: Use axis=1 to sort rows in 2D arrays [OK]
Common Mistakes:
- Using axis=0 to sort rows
- Using invalid axis like 2 for 2D arrays
- Using axis=None which flattens the array
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=0) print(sorted_arr)
medium
Solution
Step 1: Understand sorting along axis=0
Sorting with axis=0 sorts each column independently in ascending order.Step 2: Sort each column of the array
Columns: [3,6] -> [3,6], [1,4] -> [1,4], [2,5] -> [2,5]. Since columns are already sorted, array remains the same.Final Answer:
[[3 1 2] [6 4 5]] sorted by columns -> Option BQuick Check:
axis=0 sorts columns = A [OK]
Hint: axis=0 sorts columns top to bottom [OK]
Common Mistakes:
- Assuming sorting rearranges rows
- Confusing axis=0 with axis=1
- Expecting full array sort instead of column-wise
4. The code below throws an error. What is the problem?
import numpy as np arr = np.array([[1, 3], [2, 4]]) sorted_arr = np.sort(arr, axis=2) print(sorted_arr)
medium
Solution
Step 1: Check array dimensions
The array is 2D with shape (2,2), so valid axes are 0 and 1 only.Step 2: Validate axis parameter
Using axis=2 is invalid and causes an IndexError because axis 2 does not exist.Final Answer:
Axis 2 does not exist for a 2D array. -> Option AQuick Check:
Axis must be within array dimensions = C [OK]
Hint: Axis must be less than array dimensions [OK]
Common Mistakes:
- Using axis out of range
- Assuming sort only works on 1D arrays
- Confusing axis with array shape
5. Given a 3D numpy array
arr with shape (2, 2, 3), how would you sort the array along the last axis for each 2D slice?hard
Solution
Step 1: Identify the last axis in a 3D array
For shape (2, 2, 3), axes are 0, 1, 2. The last axis is 2.Step 2: Use axis=2 to sort along the last axis
Sorting with axis=2 sorts each 2D slice along the last dimension (length 3).Final Answer:
np.sort(arr, axis=2) -> Option DQuick Check:
Last axis is 2, so axis=2 sorts last dimension [OK]
Hint: Use axis=-1 or axis=2 for last axis in 3D arrays [OK]
Common Mistakes:
- Using axis=0 or 1 instead of last axis
- Confusing negative axis indexing
- Not matching axis to array shape
