在Python中对2D数组进行部分argsort
我有一个KNN,我需要一个列表 下面是它现在在代码中的工作方式:在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中进行语
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元素