Python:如何解释 np.argmax() 的结果?
Python: how to interpret the outcome of np.argmax()?
np.argmax() 上的文档说
Returns the indices of the maximum values along an axis.
给出的例子很简单:
In[1]: a = np.arange(6).reshape(2,3)
In[2]: a
Out[2]: array([[0, 1, 2],
[3, 4, 5]])
In[3]: np.argmax(a)
Out[3]: 5
In[4]: np.argmax(a, axis=0)
Out[4]: array([1, 1, 1])
In[5]: np.argmax(a, axis=1)
Out[5]: array([2, 2])
情况除外
In[4]: np.argmax(a, axis=0)
Out[4]: array([1, 1, 1])
既然5
对应a[1][2]
,为什么是return对array([1, 1, 1])
呢?
此外,如果我分配
In[6]: b=np.array([[[2,3,4],[4,5,6]],[[3,7,1],[2,5,9]]])
In[7]: b
Out[7]: array([[[2, 3, 4],
[4, 5, 6]],
[[3, 7, 1],
[2, 5, 9]]])
然后求最大值,为什么这两个return是不同的值?
In[8]: b.max()
Out[8]: 9
In[9]: np.argmax(b)
Out[9]: 11
为什么 np.argmax()
return 整数 11
甚至没有出现在数组中?
函数np.argmax()
returns index的最大值,不是value。
在数组 a
的情况下,数组 a
中的每一行(您通过指定 axis=0
要求每行)在索引 1
处具有最大值,即 3
、4
和 5
。三行是 [0, 3]
、[1, 4]
和 [2, 5]
。如果您询问 argmin()
,它会返回 array([0, 0, 0])
.
9
的值是扁平数组 b
的索引 11
处的元素。
np.argmax() 上的文档说
Returns the indices of the maximum values along an axis.
给出的例子很简单:
In[1]: a = np.arange(6).reshape(2,3)
In[2]: a
Out[2]: array([[0, 1, 2],
[3, 4, 5]])
In[3]: np.argmax(a)
Out[3]: 5
In[4]: np.argmax(a, axis=0)
Out[4]: array([1, 1, 1])
In[5]: np.argmax(a, axis=1)
Out[5]: array([2, 2])
情况除外
In[4]: np.argmax(a, axis=0)
Out[4]: array([1, 1, 1])
既然5
对应a[1][2]
,为什么是return对array([1, 1, 1])
呢?
此外,如果我分配
In[6]: b=np.array([[[2,3,4],[4,5,6]],[[3,7,1],[2,5,9]]])
In[7]: b
Out[7]: array([[[2, 3, 4],
[4, 5, 6]],
[[3, 7, 1],
[2, 5, 9]]])
然后求最大值,为什么这两个return是不同的值?
In[8]: b.max()
Out[8]: 9
In[9]: np.argmax(b)
Out[9]: 11
为什么 np.argmax()
return 整数 11
甚至没有出现在数组中?
函数np.argmax()
returns index的最大值,不是value。
在数组 a
的情况下,数组 a
中的每一行(您通过指定 axis=0
要求每行)在索引 1
处具有最大值,即 3
、4
和 5
。三行是 [0, 3]
、[1, 4]
和 [2, 5]
。如果您询问 argmin()
,它会返回 array([0, 0, 0])
.
9
的值是扁平数组 b
的索引 11
处的元素。