Python中np.argmax()函數(shù)用法示例
前言
np.argmax是用于取得數(shù)組中每一行或者每一列的的最大值。常用于機器學習中獲取分類結果、計算精確度等。
函數(shù):numpy.argmax(array, axis)
array:代表輸入數(shù)組;axis:代表對array取行(axis=0)或列(axis=1)的最大值。
一、一維數(shù)組的用法
x = np.arange(12) # [ 0 1 2 3 4 5 6 7 8 9 10 11] index = np.argmax(x) print("1 dimension test:",index) # 11
運算后,降一維,成為一個數(shù)值,11的索引值維11,所以運算結果為:11
二、二維數(shù)組的用法
# 0代表對行進行最大值選取,此時對每一列進行操作 x = np.arange(12).reshape(3,4) print(x) index = np.argmax(x,axis = 0) print("2 dimension test, axis = 0:",index) # 輸出結果: # x:[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # 2 dimension test, axis = 0:[2 2 2 2] # 1代表對列進行最大值選取,此時對每一行進行操作 x = np.arange(12).reshape(3,4) index = np.argmax(x,axis = 1) print("2 dimension test, axis = 1:",index) # 輸出結果: # 2 dimension test, axis = 1:[3 3 3]
(1)遵循運算之后降一維的原則,因此返回的會是一個一維的array。
(2)函數(shù)返回的是最大值的索引,而不是最大值本身。
(3)另一種理解思路:0:外層;1:內(nèi)層。axis的取值為0和1,剝掉對應的中括號,將里面的內(nèi)容直接按逗號分隔。
例:x=[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]]是一個(3,4)的矩陣,當axis=0時,剝掉3,返回一個(1,3)的矩陣;在axis=1時,剝掉4,返回一個(1,3)的矩陣。
析:當axis=0時,剝掉外層---->[0 1 2 3]
[4 5 6 7 ]
[8 9 10 11]
[argmax(0,4,8), argmax(1,5,9), argmax(2,6,10),argmax(3,7,11)] # 輸出:[2,2,2,2]
當axis=1時,剝掉內(nèi)層---->[0 1 2 3
4 5 6 7
8 9 10 11]
[argmax(0,1,2,3), argmax(4,5,6,7), argmax(8,9,10,11)], # 輸出:[3,3,3]
三、三維數(shù)組的用法
一個m×n×p維的矩陣:
- axis為0,舍去m,返回一個 n×p 維的矩陣
- axis為1,舍去n,返回一個 m×p 維的矩陣
- axis為2,舍去p,返回一個 m×n 維的矩陣
# 三維向量測試 # 0代表進入第一個[]內(nèi)進行對比 x = np.arange(24).reshape(2,3,4) x[1,0,3] = 1 # x = # [[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # [[12 13 14 1] # [16 17 18 19] # [20 21 22 23]]] index = np.argmax(x,axis = 0) print("3 dimension test, axis = 0:",index) # 當axis=0時,進入第一個[]內(nèi)進行對比,此時x剩下兩部分。 # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # [[12 13 14 1] # [16 17 18 19] # [20 21 22 23]] # 兩部分格式相同,將剩下的兩部分每一個單位進行對比,對比結果為 # [[1 1 1 0] # [1 1 1 1] # [1 1 1 1]] # 除去我設置的特殊位置外,其他位置均為第二部分大。 # 三維向量測試 # 1代表進入第二個[]內(nèi)進行對比 # x = # [[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # [[12 13 14 1] # [16 17 18 19] # [20 21 22 23]]] index = np.argmax(x,axis = 1) print("3 dimension test, axis = 1:",index) # 當axis=1時,進入第二個[]內(nèi)進行對比。 # [ [ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11] # [12 13 14 1] # [16 17 18 19] # [20 21 22 23] ] # 對于第二個[]內(nèi)的內(nèi)容而言,均剩下三部分,我特意將兩個第二個[]內(nèi)的內(nèi)容分開更容易辨認 # 第一個是 # [ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11] # 第二個是 # [12 13 14 1] # [16 17 18 19] # [20 21 22 23] # 都是第三行的值最大,所以輸出結果為 # [[ 2 2 2 2] # [ 2 2 2 2]] # 三維向量測試 # 2代表進入第三個[]內(nèi)進行對比 x = np.arange(24).reshape(2,3,4) x[1,0,3] = 1 # x = # [[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # [[12 13 14 1] # [16 17 18 19] # [20 21 22 23]]] index = np.argmax(x,axis = 2) print("3 dimension test, axis = 2:",index) # 當axis=2時,進入第三個[]內(nèi)進行對比。 # [[ 0 1 2 3 # 4 5 6 7 # 8 9 10 11 ] # [ 12 13 14 1 # 16 17 18 19 # 20 21 22 23 ]] # 對于第三個[]內(nèi)的內(nèi)容而言,均剩下四部分,我特意將六個第三個[]內(nèi)的內(nèi)容分開更容易辨認 # 第一個是 # 0 1 2 3 # 第二個是 # 4 5 6 7 # …… # 最后對比結果為 # [[ 3 3 3 ] # [ 2 3 3 ]]
參考:
總結
到此這篇關于Python中np.argmax()函數(shù)用法的文章就介紹到這了,更多相關Python np.argmax()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)找出數(shù)組中第2大數(shù)字的方法示例
這篇文章主要介紹了Python實現(xiàn)找出數(shù)組中第2大數(shù)字的方法,涉及Python針對數(shù)組的排序、遍歷等相關操作技巧,需要的朋友可以參考下2018-03-03如何使用python?wasmtime調(diào)用rust生成的wasm庫
這篇文章主要介紹了如何使用python?wasmtime調(diào)用rust生成的wasm庫,使用python wasmtime來訪問rust庫的便捷方法,步驟極其簡練,可以在生產(chǎn)環(huán)境中使用,需要的朋友可以參考下2023-01-01Python流行ORM框架sqlalchemy安裝與使用教程
這篇文章主要介紹了Python流行ORM框架sqlalchemy安裝與使用,結合具體實例形式分析了sqlalchemy的安裝及ORM映射、查詢等相關操作技巧,需要的朋友可以參考下2019-06-06