2016-09-15 4 views
0

Ich habe ein Array, die Abstände darstellt, so dass ich versuche, einen Array mit dem Indizes von den drei kleineren und immer größeren Entfernungen zu bekommen, auf diese Weise:Wie erhalten Sie Array-Indizes von drei kleineren Werten?

array([[ 2.8], 
     [ 206. ], 
     [ 84.4], 
     [ 297.6], 
     [ 112.7], 
     [ 235.4], 
     [ 170.7], 
     [ 22.2], 
     [ 264.1], 
     [ 163.2], 
     [ 43.7], 
     [ 131.2]]) 
Result = [0, 7, 10] 

Jede Idee o Vorschlag? Danke im Voraus.

+0

http://www.geeksforgeeks.org/k-largesto-smallest-elements-in-an-array/ –

Antwort

0

Ich fand eine nicht sehr elegante, aber funktionierende Vorgehensweise. Wenn jemand eine andere schnelle oder bessere Version hat, wird es willkommen sein.

from operator import itemgetter 
# b distances array 
b = [i for i in enumerate(b)] 
b = sorted(b, key=itemgetter(1)) 
b = [i[0] for i in b] 
result = b[:3] 
result 
# [0,7,10] 
Verwandte Themen