Вы можете использовать следующие методы для сортировки строк массива NumPy по значениям столбцов:
Способ 1: сортировка по возрастанию значений столбца
x_sorted_asc = x[x[:, 1]. argsort ()]
Способ 2: сортировка по убыванию значений столбца
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
В следующих примерах показано, как использовать каждый метод на практике.
Пример 1. Сортировка массива Numpy по возрастанию значений столбцов
Предположим, у нас есть следующий массив NumPy:
import numpy as np
#create array
x = np.array([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3)
#view array
print(x)
[[14 12 8]
[10 5 7]
[11 9 2]]
Мы можем использовать следующий код для сортировки строк массива NumPy в порядке возрастания на основе значений во втором столбце:
#define new matrix with rows sorted in ascending order by values in second column
x_sorted_asc = x[x[:, 1]. argsort ()]
#view sorted matrix
print(x_sorted_asc)
[[10 5 7]
[11 9 2]
[14 12 8]]
Обратите внимание, что строки теперь отсортированы в порядке возрастания (от меньшего к большему) на основе значений во втором столбце.
Пример 2. Сортировка массива Numpy по убыванию значений столбцов
Предположим, у нас есть следующий массив NumPy:
import numpy as np
#create array
x = np.array([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3)
#view array
print(x)
[[14 12 8]
[10 5 7]
[11 9 2]]
Мы можем использовать следующий код для сортировки строк массива NumPy в порядке убывания на основе значений во втором столбце:
#define new matrix with rows sorted in descending order by values in second column
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
#view sorted matrix
print(x_sorted_desc)
[[14 12 8]
[11 9 2]
[10 5 7]]
Обратите внимание, что строки теперь отсортированы в порядке убывания (от большего к меньшему) на основе значений во втором столбце.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как найти индекс значения в массиве NumPy
Как получить определенный столбец из массива NumPy
Как добавить столбец в массив NumPy