2016-03-28 9 views
1

私はKNNを持っており、部分的にargsortのリストが必要です。ここでPythonの部分配列を部分的にargsort

は、それがコードに今どのように動作するかです:

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] 

は仕事を取得します。より速く開く。

関連する問題