Из краткого прочтения вашего вопроса / кода я понял, что у вас есть двумерный массив, который вы хотите отсортировать по первому столбцу. Давайте создадим простой массив, подобный этому:
In [258]: arr = np.random.randint(0,10,(4,3))
In [259]: arr
Out[259]:
array([[0, 9, 7],
[8, 7, 1],
[3, 7, 8],
[3, 5, 9]])
Sort, с параметром оси 0, сортирует каждый столбец независимо:
In [260]: np.sort(arr, axis=0)
Out[260]:
array([[0, 5, 1],
[3, 7, 7],
[3, 7, 8],
[8, 9, 9]])
Но с argsort
мы получаем индексы для сортировки просто первый столбец:
In [261]: idx = np.argsort(arr[:,0])
In [262]: idx
Out[262]: array([0, 2, 3, 1])
, который мы затем можем использовать для переупорядочения всех строк
In [263]: arr[idx,:]
Out[263]:
array([[0, 9, 7],
[3, 7, 8],
[3, 5, 9],
[8, 7, 1]])