Сортировка массивов в NumPy по возрастанию в одном столбце и по убыванию в другом столбце - PullRequest
2 голосов
/ 11 октября 2019

Как мне отсортировать 2d массив в NumPy по возрастанию 1-го столбца и убыванию 2-го столбца?

Например,

a = array([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5],
           [7, 1, 6]])

Результат:

array([[4, 5, 6],
       [7, 1, 6],
       [7, 0, 5],
       [9, 2, 3]])

1 Ответ

3 голосов
/ 11 октября 2019

Для этого можно использовать функцию np.lexsort

import numpy as np
a = np.asarray([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5],
           [7, 1, 6]])

a[np.lexsort((-a[:, 1], a[:, 0]))]

Вывод

array([[4, 5, 6],
       [7, 1, 6],
       [7, 0, 5],
       [9, 2, 3]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...