天天看點

np.argsort()函數定義一個一維數組 定義一個二維數組時

定義一個一維數組 

>>> a=[2,-1,4]
>>> a=np.array(a)
>>> b=np.argsort(a)  #傳回的是數組a中從小到大排列的值對應的index(索引)
>>> b
array([1, 0, 2], dtype=int64)
           

a[1]=-1最小,b[0]=1, 即a[b[0]]=-1 ;  a[2]=4最大,b[2]=2,即a[b[2]]=4最大

類似于

np.argsort()[num]

的形式

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

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

>>> a=[2,-1,4]
>>> a=np.array(a)
>>> b=np.argsort(a)  #傳回的是數組a中從小到大排列的值對應的index(索引)
>>> b
array([1, 0, 2], dtype=int64)
>>> e=np.argsort(a)[0]   #傳回的是b[0],即數組a最小的值對應的索引
>>> e
1
>>> e=np.argsort(a)[-1]   #傳回的是b[-1],即數組a最大的值對應的索引
>>> e
2
           

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,依此類推。。

使用[::-1],可以建立X從大到小的索引。

>>> a=[2,-1,4]
>>> a=np.array(a)
>>> b=np.argsort(a)  #預設為從小到大的對應的索引
>>> b
array([1, 0, 2], dtype=int64)
>>> b[::-1]    #為從大到小的對應的索引,等價于np.argsort(a)[::-1]
array([2, 0, 1], dtype=int64)
           
>>> a=[2,-1,4]
>>> a=np.array(a)
>>> b=np.argsort(a)  #預設為從小到大的對應的索引
>>> b
array([1, 0, 2], dtype=int64)
>>> b[::-1]    #為從大到小的對應的索引,等價于np.argsort(a)[::-1]
array([2, 0, 1], dtype=int64)
>>> e=b[::-1]
>>> a[e]  #數組a變成從大到小了
array([ 4,  2, -1]
           

定義一個二維數組時

>>> d=[[1,2,-2],[0,3,4],[4,5,6]]
>>> d=np.array(d)
>>> y=np.argsort(d) 傳回的是每一個一維數組從小到大的對應的索引
>>> y
array([[2, 0, 1],
       [0, 1, 2],
       [0, 1, 2]], dtype=int64)