@ steve на самом деле самый элегантный способ сделать это.
Для «правильного» способа см. Аргумент ключевого слова заказа numpy.ndarray.sort
Однако вам нужно будет просмотреть свой массив как массив с полями (структурированный массив).
"Правильный" способ довольно уродлив, если вы изначально не определяли свой массив с полями ...
В качестве быстрого примера, чтобы отсортировать его и вернуть копию:
In [1]: import numpy as np
In [2]: a = np.array([[1,2,3],[4,5,6],[0,0,1]])
In [3]: np.sort(a.view('i8,i8,i8'), order=['f1'], axis=0).view(np.int)
Out[3]:
array([[0, 0, 1],
[1, 2, 3],
[4, 5, 6]])
Чтобы отсортировать на месте:
In [6]: a.view('i8,i8,i8').sort(order=['f1'], axis=0) #<-- returns None
In [7]: a
Out[7]:
array([[0, 0, 1],
[1, 2, 3],
[4, 5, 6]])
@ Стив действительно самый элегантный способ сделать это, насколько я знаю ...
Единственное преимущество этого метода в том, что аргумент "order" - это список полей, по которым упорядочен поиск. Например, вы можете отсортировать по второму столбцу, затем по третьему столбцу, затем по первому столбцу, указав order = ['f1', 'f2', 'f0'].