Код: Выделить всё
foo = np.array([
[[1, 3],
[2, 4]],
[[4, 1],
[2, 3]],
[[3, 2],
[3, 1]],
[[2, 4],
[3, 1]],
[[1, 2],
[3, 4]]])
Код: Выделить всё
my_argsort([[1,2],[2,4]]) == [0,1]
my_argsort([[2,1],[1,2]]) == [1,0]
my_argsort([[1,2],[1,1]]) == [1,0] #NB
Код: Выделить всё
pair_of_pairs[my_argsort(pair_of_pairs)]) == sorted(map(tuple, pair_of_pairs))
Я можно выполнить сортировку по только первому значению в кортеже с помощью np.argsort(foo.reshape(-1, 2, 2), axis=1)[:,:,0]. (Я до сих пор не совсем уверен, как использовать это для индексации foo, чтобы получить отсортированный массив... обновлю, когда выясню это.
Как мне "tuple argsort" " в numpy?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ered-pairs
Мобильная версия