Привет. Я считаю, что эту проблему лучше всего продемонстрировать на примере.
У меня есть numpy массив
array =
[[ 101 27]
[6 355]
[6400 85]
[ 33 96]]
Я хочу отсортировать массив на основе значений во втором столбец (по возрастанию), чтобы получить
array =
[[ 101 27]
[6400 85]
[ 33 96]
[6 355]]
Затем я хочу отсортировать по возрастанию первого столбца, но только для строк один и два. Затем повторите для рядов три и четыре.
Этот последний шаг может быть объяснен в псевдокоде:
if array[0][0] > array[1][0]:
transpose array[0] and array[1]
if array[2][0] > array[3][0]:
transpose array[2] and array[3]
Это дает:
array =
[[ 101 27]
[6400 85]
[6 355]
[ 33 96]]
Я могу сделать это легко, но код не очень хороший, Я предполагаю, что есть элегантный / эффективный способ сделать это?