Как отсортировать массив 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