Course Content
Ultimate NumPy
Ultimate NumPy
Sorting 2D Arrays
As you can see, simply passing our 2D array to the sort()
function sorts each 1D array along the axis 1 (which is the default option in a 2D array). Setting axis=0
sorts each 1D array along the axis 0 (every column).
Setting axis=None
returns a contiguous sorted 1D array of all the elements of the 2D array.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 print(np.sort(array_2d)) # Sorting a 2D array along axis 0 print(np.sort(array_2d, axis=0)) # Creating a 1D sorted array out of the elements of array_2d print(np.sort(array_2d, axis=None))
Sorting 2D Arrays in Descending Order
When sorting 2D arrays in descending order along a given axis, you need to use two slices: one full slice ([:]
) and another with a negative step ([::-1]
). The position of the slice with the negative step should correspond to the axis along which you are sorting.
Note
When sorting along axis 0, you can use only a slice with a negative step, as it already indexes along this axis.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 in descending order print(np.sort(array_2d)[:, ::-1]) # Sorting a 2D array along axis 0 in descending order print(np.sort(array_2d, axis=0)[::-1]) # Creating a 1D sorted array out of the elements of array_2d in descending order print(np.sort(array_2d, axis=None)[::-1])
Swipe to show code editor
You have a 2D array named exam_scores
containing the scores for each exam from a certain subject. Each column represents a specific subject, and each row represents an individual student. Thus, a specific row displays the scores of that student for each exam.
-
Create a 2D NumPy array named
top_scores_subject
based onexam_scores
where each column, representing a certain subject, is sorted by scores in descending order. -
Create a 1D NumPy array named
sorted_scores
based onexam_scores
, containing all scores sorted in ascending order.
By doing this, you can easily identify the highest scores for each exam and the lowest scores across all exams.
Thanks for your feedback!
Sorting 2D Arrays
As you can see, simply passing our 2D array to the sort()
function sorts each 1D array along the axis 1 (which is the default option in a 2D array). Setting axis=0
sorts each 1D array along the axis 0 (every column).
Setting axis=None
returns a contiguous sorted 1D array of all the elements of the 2D array.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 print(np.sort(array_2d)) # Sorting a 2D array along axis 0 print(np.sort(array_2d, axis=0)) # Creating a 1D sorted array out of the elements of array_2d print(np.sort(array_2d, axis=None))
Sorting 2D Arrays in Descending Order
When sorting 2D arrays in descending order along a given axis, you need to use two slices: one full slice ([:]
) and another with a negative step ([::-1]
). The position of the slice with the negative step should correspond to the axis along which you are sorting.
Note
When sorting along axis 0, you can use only a slice with a negative step, as it already indexes along this axis.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 in descending order print(np.sort(array_2d)[:, ::-1]) # Sorting a 2D array along axis 0 in descending order print(np.sort(array_2d, axis=0)[::-1]) # Creating a 1D sorted array out of the elements of array_2d in descending order print(np.sort(array_2d, axis=None)[::-1])
Swipe to show code editor
You have a 2D array named exam_scores
containing the scores for each exam from a certain subject. Each column represents a specific subject, and each row represents an individual student. Thus, a specific row displays the scores of that student for each exam.
-
Create a 2D NumPy array named
top_scores_subject
based onexam_scores
where each column, representing a certain subject, is sorted by scores in descending order. -
Create a 1D NumPy array named
sorted_scores
based onexam_scores
, containing all scores sorted in ascending order.
By doing this, you can easily identify the highest scores for each exam and the lowest scores across all exams.
Thanks for your feedback!