2010-10-06 4 views
1

В Numpy, как мне создать массив индексов, которые можно использовать, возвращают значения исходного массива в отсортированном порядке? например:Справка по сортировке по номеру

Source: 
    [[4 2 6 7] 
     [1 4 8 9] 
     [3 1 0 3]] 

Indices: 
    [10 4 9 1 8 11 0 5 2 3 6 7] 

ответ

2

Посмотрите на numpy.argsort - он возвращает индексы, которые будут сортировать ваш массив. Вы также можете указать ось для сортировки. Попробуйте:

a = numpy.asarray([[4, 2, 6, 7], [1, 4, 8, 9], [3, 1, 0, 3]]) 
numpy.argsort(a.flat) 

>> array([10, 4, 9, 1, 8, 11, 0, 5, 2, 3, 6, 7]) 
0

Ответ находится в руководстве:

src = [[ ... ]] 
ravel_src = np.ravel(src) 
indices = np.argsort(ra) 
Смежные вопросы