1. 程式人生 > >關於python中argsort()函數的使用

關於python中argsort()函數的使用

-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()函數的使用