函式原型:
def argmax(a, axis=none, out=none)
a—-輸入array
axis—-為0代表列方向,為1代表行方向
out—-結果寫到這個array裡面
1、從簡單的一維開始
import numpy as np
a=np.array([3, 1, 2, 4, 6, 1])
bb=np.argmax(a)
print(bb)//bb的值為4
返回array中數值最大數的下標,預設將輸入array視作一維,出現相同的最大,返回第一次出現的。
2、兩維陣列
axis=0的如下所示:
import numpy as np
a=np.array([[1, 5, 5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
bb=np.argmax(a,axis=0) //當axis=0時,表示返回列方向上數值最大值下標
print(bb) //bb為[1,2,2,1]
np.argmax(a,axis=0)的含義是a[0][j],a[1][j],a[2][j] (j=0,1,2,3)中最大值的索引。從a[0][j]開始,最大值索引最初為(0,0,0,0),拿a[0][j]和a[1][j]作比較,9大於1,6大於5,8大於2,所以最大值索引由(0,0,0,0)更新為(1,1,0,1),再和a[1][j]作比較,7大於6,9大於5所以更新為(1,2,2,1)
axis=1的如下所示:
import numpy as np
a=np.array([[1, 5, 5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]])
bb=np.argmax(a,axis=1) //當axis=1時,表示返回行方向上數值最大值下標
print(bb) //bb為[1,0,2]
np.argmax(a, axis=1)的含義是a[i][0],a[i][1],a[i][2],a[i]3中最大值的索引。從a[i][0]開始,a[i][0]對應的索引為(0,0,0),先假定它就是最大值索引(思路和上節簡單例子完全一致)拿a[i][0]和a[i][1]作比較,5大於1,7大於3所以最大值索引由(0,0,0)更新為(1,0,1),再和a[i][2]作比較,9大於7,更新為(1,0,2),再和a[i][3]作比較,不用更新,最終值為(1,0,2)
3、三維陣列
axis=0的如下所示:
import numpy as np
a = np.array([
[[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1]],[
[-1, 5, -5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]]])
bb=np.argmax(a,axis=0)
print(bb)
np.argmax(a, axis=0)的含義是a[0][j][k],a[1][j][k](j=0,1,2,k=0,1,2,3)中最大值的索引。從a[0][j][k]開始,a[0][j][k]對應的索引為((0,0,0,0),(0,0,0,0),(0,0,0,0)),拿a[0][j][k]和a[1][j][k]對應項作比較6大於-6,3大於-3,9大於-9,所以更新這幾個位置的索引,將((0,0,0,0),(0,0,0,0),(0,0,0,0))更新為((0,0,0,0),(0,1,0,0),(1,0,1,0))。
axis=1的如下所示:
import numpy as np
a = np.array([
[[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1]],[
[-1, 5, -5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]]])
bb=np.argmax(a,axis=1)
print(bb)
np.argmax(a,axis=1)的含義是a[i][0][k],a[i][1][k] (i=0,1,k=0,1,2,3)中最大值的索引。從a[i][0][k]開始,a[i][0][k]對應的索引為((0,0,0,0),(0,0,0,0)),拿a[i][0][k]和a[i][1][k]對應項作比較,9大於1,8大於2,9大於-1,6大於5,2大於-5,8大於2,所以更新這幾個位置的索引,將((0,0,0,0),(0,0,0,0))更新為((1,0,0,1),(1,1,1,1)),現在最大值對應的陣列為((9,5,5,8),(9,6,2,8))。再拿((9,5,5,8),(9,6,2,8))和a[i][2][k]對應項從比較,7大於5,7大於6,9大於2。更新這幾個位置的索引。將((1,0,0,1),(1,1,1,1))更新為((1,2,0,1),(1,2,2,1))。
參考部落格:
numpy裡面的argmax函式
numpy裡面的argmax函式 函式原型 def argmax a,axis none,out none a 輸入array axis 為0代表列方向,為1代表行方向 out 結果寫到這個array裡面 例子 import numpy as np a np.array 2,4,6,1 1,5,2,...
關於numpy中的廣播與argmax問題
問題背景 最近正在看faster rcnn的anchor target layer.py原始碼,其中關於numpy的argmax 問題搞得很混亂。此問題理清楚還需要高清楚numpy的索引的運作原理。a np.array 1,3,5 2,2,9 a.argmax axis 0 array 1,0,1 ...
列舉裡面的介面的實現
列舉式乙個類,這個類,同樣也有類改由的功能,今天來說說列舉來實現介面。下面還是來看看 吧.首先我們定義乙個介面 介面裡面由兩個抽象方法.如下.public inte ce enuminte ce下滿我們來定義我們的列舉型別的類,分別由三個物件,分別有自己的構造方法.如下.public enum de...