2016-03-28 48 views
1

我有一個KNN,我需要部分argsort列表。在Python中部分排列一個二維數組

這裏是如何工作的,現在在代碼:

sorted_distance_indices = distances.argsort(axis=1)[:,:self.parameters['k']+1] 

kplus_1_nearest_classes = self.trainingY[sorted_distance_indices] 

...etc. 

我發現這個答案,How can I partially sort a list?但我不明白如何去適應的argsort任務「heapification」,(我沒有想法如何在Python中進行語言互操作,所以我沒有看到如何手動執行heapsort alg)...

+0

[優先堆的本地Python實現](https://docs.python.org/2/library/heapq.html)可能會有所幫助。 –

回答

2

我想我已經得到了答案。

運行:

sorted_distance_indices = np.argpartition(distances,self.parameters['k']+1,axis=1)[:,:self.parameters['k']+1] 

能夠完成任務。打開更快的方式。