Contenuti del Corso
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 start coding
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.
Soluzione
Grazie per i tuoi commenti!
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 start coding
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.
Soluzione
Grazie per i tuoi commenti!