作用
argmax()返回的就是最大數(shù)的索引
argmax()有一個(gè)參數(shù)axis,可以指定函數(shù)返回不同維的最大值。
一維
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(np.argmax(a, axis=0))
結(jié)果是4
。而在python中一維向量只有一個(gè)方向,所以一維情況下axis只能等于0,函數(shù)只會(huì)返回一個(gè)值。
如果對(duì)它進(jìn)行轉(zhuǎn)置,它就會(huì)變成一個(gè)二維矩陣:
a = np.array([1, 3, 5, 7])
print(a)
print(a.shape)
b = a.reshape((4, 1))
print(b)
print(b.shape)
#結(jié)果
[1 3 5 7]
(4,)
[[1]
[3]
[5]
[7]]
(4, 1)
axis的值大于0
比如說
a = np.array([1, 2, 3, 4, 5])
print(np.argmax(a, axis=1))
會(huì)報(bào)錯(cuò)numpy.AxisError: axis 1 is out of bounds for array of dimension 1
二維
axis=0
a = np.array([[1, 3, 5, 7],
[5, 7, 2, 2],
[4, 6, 8, 1]])
print(np.argmax(a, axis=0))
返回結(jié)果
[1 1 2 0]
輸入的是一個(gè)3x4的矩陣。如果把輸入矩陣的數(shù)用a[i][j]來表示的話,axis=0時(shí)返回的索引就是a[i][j]在j分別等于0,1,2,3,i取不同值時(shí)最大數(shù)所在位置對(duì)應(yīng)i的值。因?yàn)閖可以取4個(gè)值,所以得到的是一個(gè)1x4的結(jié)果。
就是a[0][0] a[1][0] a[2][0]比較,a[0][1] a[1][1] a[2][1]比較,a[0][2] a[1][2] a[2][2]比較,a[0][3] a[1][3] a[2][3]比較。
此時(shí)可以看成是按列找最大值。
axis=1
返回結(jié)果
[3 1 2]
同樣如果把輸入矩陣的數(shù)用a[i][j]來表示的話,axis=1時(shí)返回的索引就是a[i][j]在i分別等于0,1,2,j取不同值時(shí)最大數(shù)所在位置對(duì)應(yīng)j的值。因?yàn)閕可以取3個(gè)值,所以得到的是一個(gè)1x3的結(jié)果。
可以看成是按行找最大值。
三維
axis=0
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]]])
print(np.argmax(a, axis=0))
返回結(jié)果
[[0 0 0 0]
[0 1 0 0]
[1 0 1 0]]
輸入的是一個(gè)2x3x4的矩陣。如果我們把輸入矩陣的數(shù)用a[i][j][k]來表示的話,axis=0時(shí)返回的索引就是a[i][j][k]在j等于0,1,2;k等于0,1,2,3,i取不同值時(shí)最大數(shù)對(duì)應(yīng)的i的值。
相當(dāng)于最大值相對(duì)于第一維所在的位置,就是黃框以及藍(lán)框中最大數(shù)在兩個(gè)紅框中的位置。
因?yàn)閖*k=3x4,所以返回的是一個(gè)3x4的矩陣。
axis=1
[[1 2 0 1]
[1 2 2 1]]
i*k=2x4,返回2x4的矩陣。返回的索引就是a[i][j][k]在i=0,1;k=0,1,2,3,j取不同值時(shí)的最大數(shù)對(duì)應(yīng)的j的值。相當(dāng)于最大值相對(duì)于第二維所在的位置。
axis=2
[[1 0 1]
[1 0 2]]
i*j=2x3,返回2x3的矩陣。返回的索引就是a[i][j][k]在i=0,1;j=0,1,2,k取不同值時(shí)的最大數(shù) 對(duì)應(yīng)的k的值。相當(dāng)于最大值相對(duì)于第三維所在的位置。
更高維也是差不多的道理。文章來源:http://www.zghlxwxcb.cn/news/detail-424037.html
參考文獻(xiàn):https://www.cnblogs.com/touch-skyer/p/8509217.html
https://blog.csdn.net/qq_37148940/article/details/109672790文章來源地址http://www.zghlxwxcb.cn/news/detail-424037.html
到了這里,關(guān)于(Python)對(duì)numpy中的argmax用法的理解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!