2016-09-24 2 views
2

Я хотел бы отсортировать массив в numpy первой строкой.сортировка массивов в numpy по строке

Например:

import numpy as np 

test = np.array([[1334.71601720318, 930.9757468052002, 1018.7038817663818], 
     [0.0, 1.0, 2.0], 
     [ np.array([[ 667, 1393], 
     [1961, 474]]), 
     np.array([[ 673, 1389], 
     [ 847, 1280]]), 
     np.array([[ 726, 1077], 
     [ 898, 961]])]], dtype=object) 

Я хочу, чтобы отсортировать строки:

[1334.71601720318, 930.9757468052002, 1018.7038817663818] 

получить:

np.array([[930.9757468052002, 1018.7038817663818, 1334.71601720318], 
     [1.0, 2.0 ,0.0], 
     [ np.array([[ 673, 1389], 
     [ 847, 1280]]), 
     np.array([[ 726, 1077], 
     [ 898, 961]])], 
     np.array([[ 667, 1393], 
     [1961, 474]])], dtype=object) 

---- EDIT ---- ПОЗЖЕ

Я пробовал: сортировать (тест, ключ = лямбда row: row [1]) Но у меня появилось сообщение об ошибке: «Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.All()»

ответ

3

Я думаю test[:, np.argsort(test[0]) ] должен сделать трюк

+0

Совершенным;.!) Спасибо за вашу помощь – user3601754

Смежные вопросы