關於python中argsort()函數的使用
阿新 • • 發佈:2018-03-23
-m mark 序列 pre pri 實現 學習 down log
在實現《機器學習實戰》中kNN代碼時遇到需要將計算好的距離進行排序,即可使用argsort()函數,在此依據個人理解對該函數進行簡單的介紹。
總的來說,argsort()函數是對數組中的元素進行從小到大排序,並返回相應序列元素的數組下標。
以下通過例子進行詳細解釋。
1. 先定義一個數組
>>>from numpy import *
>>>a = array([7, 8, 5, -3, 10, 9])
2. 調用argsort()函數,將返回的值賦給y,並查看y的結果
>>>y = a.argsort() >>>print(y)
結果為:y = array([3, 2, 0, 1, 5, 4])
按照數組a元素從小到大排序為:a[3]=-3,a[2]=5,a[0]=7,a[1]=8,a[5]=9,a[4]=10
而數組y保存的即為從小到大排序的數組a的下標。
3. 關於argsort()[num]的使用
當num >= 0時,argsort()[num]的值即為y[num]的值
當num < 0時,argsort()[num]的值為y數組反向輸出的第num個數。
>>>x = a.argsort()[-1]
輸出為:
4
即輸出數組a中最大元素的下標,也是y數組中最後一個元素的值。
關於python中argsort()函數的使用