How to find the index of n largest elements in a list or np.array, Python

前端 未结 4 687
夕颜
夕颜 2021-02-05 09:05

Is there a built-in function or a very simple way of finding the index of n largest elements in a list or a numpy array?

K = [1,2,2,4,5,5,6,10]

4条回答
  •  误落风尘
    2021-02-05 09:54

    Consider the following code,

     N=5
     K = [1,10,2,4,5,5,6,2]
     #store list in tmp to retrieve index
     tmp=list(K)
     #sort list so that largest elements are on the far right
     K.sort()
     #To get the 5 largest elements
     print K[-N:]
     #To get the 5th largest element
     print K[-N]
     #get index of the 5th largest element
     print tmp.index(K[-N])
    

    If you wish to ignore duplicates, then use set() as follows,

     N=5
     K = [1,10,2,4,5,5,6,2]
     #store list in tmp to retrieve index
     tmp=list(K)
     #sort list so that largest elements are on the far right
     K.sort()
     #Putting the list to a set removes duplicates
     K=set(K)
     #change K back to list since set does not support indexing
     K=list(K)
     #To get the 5 largest elements
     print K[-N:]
     #To get the 5th largest element
     print K[-N]
     #get index of the 5th largest element
     print tmp.index(K[-N])
    

    Hopefully one of them covers your question :)

提交回复
热议问题