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

