繞暈大多數Python初學者的argsort()函式

weixin_33831196發表於2017-10-04

使用python做機器學習的一般都是從k-近鄰演算法開始學習。

這就很難繞開argsort()函式,但是在使用argsort()函式時大部分初學者都會被繞暈進去。

百度的答案大都來自同一篇文章的轉載,並沒有詳細解釋,這裡詳細解釋一下。


argsort()函式是用來返回陣列值從小到大索引值的。舉例

a = [6,4,5]

那麼

a.argsort() = [1,2,0]

下面講一下詳細邏輯:

我們把矩陣a從小到大排序,記排序後的矩陣為b:

b = [4,5,6]

矩陣a和b的關係:

b的第一個元素“4”對應的是a矩陣的第2個元素,也就是a[1]

b的第二個元素“5”對應的是a矩陣的第3個元素,也就是a[2]

b的第三個元素“6”對應的是a矩陣的第1個元素,也就是a[0]

所以a.argsort(),也就是a排序後索引值就是[1,2,0]

a.argsort() = [1,2,0]


PS:索引值相當於頁數,是一個排序值,不等於元素的值。

像書的目錄一樣,對於例子中的矩陣,我們有如下索引:

6............0
4............1
5............2

所以排序後b=[4,5,6],用索引值來表達就是[1,2,0]

相關文章