numpy的:
import numpy as np
top_k=3
arr = np.array([1, 3, 2, 4, 5])
top_k_idx=arr.argsort()[::-1][0:top_k]
print(top_k_idx)
这个效率比较高:
1万条排序,不到1ms
import heapq
import numpy as np
if __name__ == '__main__':
a = [0, 1, 2, 3, 4, 5, 5, 7, 8, 10, 15, 20, 25]
bbb= heapq.nsmallest(2, abs(np.array(a)-3.5))
ccc= heapq.nsmallest(2, enumerate(abs(np.array(a)-3.5)),key=lambda x: x[1])
print(bbb)
print(ccc)
#coding=utf-8
'''
Created on Sep 21, 2015
@author: haoyifen
'''
import time
import random
def left(i):