在Python中对2D数组进行部分argsort

在Python中对2D数组进行部分argsort,python,numpy,heap,heapsort,Python,Numpy,Heap,Heapsort,我有一个KNN,我需要一个列表 下面是它现在在代码中的工作方式: sorted_distance_indices = distances.argsort(axis=1)[:,:self.parameters['k']+1] kplus_1_nearest_classes = self.trainingY[sorted_distance_indices] ...etc. 我找到了这个答案,但我不知道如何为argsort任务调整“heapification”(我不知道如何在Python中进行语

我有一个KNN,我需要一个列表

下面是它现在在代码中的工作方式:

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

kplus_1_nearest_classes = self.trainingY[sorted_distance_indices]

...etc.

我找到了这个答案,但我不知道如何为argsort任务调整“heapification”(我不知道如何在Python中进行语言互操作,所以我不知道如何手动执行heapsort alg)。

我想我已经找到了答案

运行:

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

完成任务。打开一条更快的路

可能会有帮助。我知道这很旧,但是
np.argpartition
只将
k
th元素放在正确的位置。在此之前的所有内容都不能保证被排序,但距离小于
k
th元素