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.
np.sort() for sorting arrays in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
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).
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)
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)
import numpy as np # Example 3: Sort an empty array empty_array = np.array([]) sorted_empty = np.sort(empty_array) print(sorted_empty)
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)
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.
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)
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.
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
np.sort() function do when applied to a NumPy array?Solution
Step 1: Understand np.sort() behavior
Thenp.sort()function returns a new sorted array and does not modify the original array.Step 2: Identify the sorting order
By default,np.sort()sorts elements in ascending order.Final Answer:
It returns a new array with elements sorted in ascending order. -> Option AQuick Check:
np.sort() returns sorted copy [OK]
- Thinking np.sort() sorts in place
- Confusing sorting with reversing
- Assuming it removes duplicates
arr using np.sort()?Solution
Step 1: Recall np.sort() syntax
The correct way to sort an array using the function isnp.sort(arr).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.Final Answer:
np.sort(arr) -> Option AQuick Check:
np.sort(arr) is correct syntax [OK]
- Using arr.sorted() which does not exist
- Using axis=1 on 1D array
- Confusing np.sort() with arr.sort() method
import numpy as np arr = np.array([[3, 1, 2], [6, 4, 5]]) sorted_arr = np.sort(arr, axis=1) print(sorted_arr)
Solution
Step 1: Understand sorting along axis=1
Sorting withaxis=1sorts each row independently in ascending order.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].Final Answer:
[[1 2 3] [4 5 6]] -> Option CQuick Check:
Row-wise sort = [[1 2 3], [4 5 6]] [OK]
- Sorting columns instead of rows
- Expecting original array unchanged in print
- Confusing axis parameter meaning
import numpy as np arr = np.array([3, 1, 2]) sorted_arr = np.sort(arr, axis=1) print(sorted_arr)
Solution
Step 1: Check array dimensions
The arrayarris 1D, so it only has axis 0.Step 2: Understand axis parameter
Usingaxis=1on a 1D array causes an error because axis 1 does not exist.Final Answer:
Axis 1 does not exist for 1D arrays. -> Option DQuick Check:
1D array has only axis 0 [OK]
- Assuming axis=1 works on 1D arrays
- Thinking np.sort can't handle integers
- Believing array must be list to sort
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?Solution
Step 1: Flatten and sort the entire array
Usingaxis=Noneinnp.sort()sorts the array as a flat 1D array.Step 2: Reshape sorted array back to original shape
Use.reshape(data.shape)to restore the 2D shape after sorting.Final Answer:
np.sort(data, axis=None).reshape(data.shape) -> Option BQuick Check:
axis=None sorts flat, reshape restores shape [OK]
- Sorting only rows or columns instead of flat
- Using data.sort() which sorts in place
- Omitting reshape after sorting flat
