Как отсортировать массив numpy по столбцу (с примерами)
Вы можете использовать следующие методы для сортировки строк массива 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