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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.