python 中 argsort 的排序問題(許多相同數據,浮點數據)?

       最近學習 機器學習實戰 的過程中發現其中的argsort 函數排序的問題,就拿來測試。幫助文檔 說排序方式是有小到大的索引值,但實際測試中加入 浮點數據(小數)。發現排序方式並沒有按照預想中的由小到大排列,感覺較亂。或者說是數據中相同的數據比較多,排序有問題。本文只標記測試過程,沒有結果,個人建議使用argsort排序時不要有太多相同數據。同時希望有人能夠幫忙解決這個問題,那就感激不盡了。

下面是測試:


>>> a = [3,2,1,4,2.3,2.5,3.1]
>>> argsort(a)
array([2, 1, 4, 5, 0, 6, 3], dtype=int64)

測試的結果顯示很亂,找不到規律

>>> a =[3, 2, 1, 4,2.3,2.5,3.1,3.5]
>>> argsort(a)
array([ 2, 1, 4, 5, 0, 6, 7, 3], dtype=int64)

將上述的 a 各項取整之後再排序,發現結果相同,如下所示:

>>> a = [3,2,1,4,2,2,3,3]
>>> argsort(a)
array([2, 1, 4, 5, 0, 6, 7, 3], dtype=int64)

但是測試的結果仍然讓人摸不着頭腦,相同的數字序號不是相連的,下面的測試能明顯看出這一點:

>>> b = [1,2,1,1,1]
>>> argsort(b)
array([0, 2, 3, 4, 1], dtype=int64)

那這個排序規則到底是怎麼樣的呢?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章