淺述python中argsort 函式的用法

2021-08-18 06:15:17 字數 1209 閱讀 1168

由於想使用python用訓練好的caffemodel來對很多進行批處理分類,學習過程中,碰到了argsort函式,因此去查了相關文獻,也自己在python環境下進行了測試,大概了解了其相關的用處,為了怕自己後面又忘了,就寫下來權當加深理解了。(ps:我也是python小白,理解可能比較淺顯)

1.先定義乙個array資料

1 import numpy as np

2 x=np.array([1,4,3,-1,6,9])

2.現在我們可以看看argsort()函式的具體功能是什麼:

x.argsort()
輸出定義為y=array([3,0,2,1,4,5])。

我們發現argsort()函式是將x中的元素從小到大排列提取其對應的index(索引),然後輸出到y。例如:x[3]=-1最小,所以y[0]=3,x[5]=9最大,所以y[5]=5。

上面這個不難理解,不熟悉的可以去python環境下自己嘗試。

3.由於在程式中遇到了類似於np.argsort()[num]的形式,一直看不明白,就自己去python環境自己試了下:

ps:這裡的num的絕對值小於等於x中元素的個數

當num>=0時,np.argsort()[num]就可以理解為y[num];

當num<0時,np.argsort()[num]就是把陣列y的元素反向輸出,例如np.argsort()[-1]即輸出x中最大值對應的index,np.argsort()[-2]即輸出x中第二大值對應的index,依此類推。。

直觀的實驗才能看到效果,下面是我拿上面例子做的驗證:

這是當num為負值時的輸出

這個是num>=0時的輸出。

總結:根據上面的闡述,應該對argsort()的用法有了乙個簡單的了解。由於我沒有去看官方解釋,所以理解可能欠缺,希望諸位指正。

淺述python中深淺拷貝原理

前言 在c 中引數傳遞有兩種形式 值傳遞和引用npejham傳遞。這兩種方式的區別我不在此說,自行補上,如果你不知道的話。我先上python 看完我們總結一下,如下 copy module import import copy number and string a 12 a1 a a2 copy....

淺述python中argsort 函式的用法

由於想使用python用訓練好的caffemodel來對很多進行批處理分類,學習過程中,碰到了argsort函式,因此去查了相關文獻,也自己在python環境下進行了測試,大概了解了其相關的用處,為了怕自己後面又忘了,就寫下來權當加深理解了。ps 我也是python小白,理解可能比較淺顯 1.先定義...

淺述Try Catch 作用

1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace test09716 static void main string args 1722 catch ...