#python #arrays #sorting #multidimensional-array
#python #массивы #сортировка #многомерный-массив
Вопрос:
Учитывая 2D-массив, как выполнить argsort его элементов и получить список координат элементов массива от самого низкого до самого высокого.
Например, учитывая:
1 5
2 3
Мы получаем:
[[0,0], [1,0], [1,1], [0,1].
Можем ли мы обобщить его на n
размерные массивы?
Комментарии:
1. предполагая, что у вас есть N-мерный массив numpy
A
, вы можете сделатьnp.argsort(A, None).reshape(A.shape)
Ответ №1:
Для 2D точный ответ:
A_2d_argsort = np.argsort(A, None)
ver = np.floor(A_2d_argsort // A.shape[1])
hor = A_2d_argsort % A.shape[1]
np.stack([ver,hor]).transpose()