Как мне отсортировать 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]])
Для этого можно использовать функцию np.lexsort
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]))]
Вывод