網站首頁 編程語言 正文
前言
np.argmax是用于取得數組中每一行或者每一列的的最大值。常用于機器學習中獲取分類結果、計算精確度等。
函數:numpy.argmax(array, axis)
array:代表輸入數組;axis:代表對array取行(axis=0)或列(axis=1)的最大值。
一、一維數組的用法
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
運算后,降一維,成為一個數值,11的索引值維11,所以運算結果為:11
二、二維數組的用法
# 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)函數返回的是最大值的索引,而不是最大值本身。
(3)另一種理解思路:0:外層;1:內層。axis的取值為0和1,剝掉對應的中括號,將里面的內容直接按逗號分隔。
例: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時,剝掉內層---->[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]
三、三維數組的用法
一個m×n×p維的矩陣:
- axis為0,舍去m,返回一個 n×p 維的矩陣
- axis為1,舍去n,返回一個 m×p 維的矩陣
- axis為2,舍去p,返回一個 m×n 維的矩陣
# 三維向量測試
# 0代表進入第一個[]內進行對比
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時,進入第一個[]內進行對比,此時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代表進入第二個[]內進行對比
# 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時,進入第二個[]內進行對比。
# [ [ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]
# [12 13 14 1]
# [16 17 18 19]
# [20 21 22 23] ]
# 對于第二個[]內的內容而言,均剩下三部分,我特意將兩個第二個[]內的內容分開更容易辨認
# 第一個是
# [ 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代表進入第三個[]內進行對比
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時,進入第三個[]內進行對比。
# [[ 0 1 2 3
# 4 5 6 7
# 8 9 10 11 ]
# [ 12 13 14 1
# 16 17 18 19
# 20 21 22 23 ]]
# 對于第三個[]內的內容而言,均剩下四部分,我特意將六個第三個[]內的內容分開更容易辨認
# 第一個是
# 0 1 2 3
# 第二個是
# 4 5 6 7
# ……
# 最后對比結果為
# [[ 3 3 3 ]
# [ 2 3 3 ]]
參考:numpy模塊中axis的理解——以np.argmax為例
【Python數據清洗】np.argmax()函數用法解析
總結?
原文鏈接:https://blog.csdn.net/m0_64931900/article/details/126261995
相關推薦
- 2022-06-27 在Python中如何讓字典保持有序_python
- 2023-04-08 C/C++如何實現兩矩陣相乘之模擬法_C 語言
- 2023-01-17 Linux?ps命令詳解及Linux查看進程的操作方法_linux shell
- 2022-07-10 redis主從配置+sentinel哨兵模式
- 2023-01-14 C++之eigen安裝與測試方式_C 語言
- 2023-07-15 es6中export和export default的區別
- 2022-04-25 jQuery利用鍵盤上下鍵移動表格內容_jquery
- 2022-05-08 淺談如何在bat文件中調用另一個bat文件_DOS/BAT
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支