У меня есть массив, подобный следующему
import numpy as np
a=np.array([[3.1,10,6.],[7.,4,8.1]])
, и я хочу изменить порядок строк таким образом, чтобы второй элемент строк увеличивался.Итак, я хочу следующий вывод
[[ 7. 4. 8.1]
[ 3.1 10. 6. ]]
, потому что 4<10
.
Способ, которым я это делаю, - это преобразовать его в список.Тогда я мог бы использовать sort
и навязать, что порядок должен быть выполнен на основе второго элемента, используя key
:
def f(x):
return x[1]
b=list(a)
b.sort(key=f)
a=np.array(b)
print a
Мне не нравится этот подход, возможно ли сделатьэто без преобразования массива в список, например, с помощью np.sort
или каким-либо другим методом?