繁体   English   中英

沿轴的 Numpy 最大值

[英]Numpy max along axis

我在这里错过了什么吗? 我希望以下代码段中的np.max会返回[0, 4] ...

>>> a
   array([[1, 2],
          [0, 4]])

>>> np.max(a, axis=0)
   array([1, 4])

感谢您的指点。

看起来您想要包含最大值的行,对吗?

max(axis=0)返回[1,0]和[2,4]的最大值。

不带轴参数的argmax以扁平形式找到整个数组的最大值。 要将索引转换为行号,我们必须使用unravel_index

In [464]: a.argmax()
Out[464]: 3
In [465]: np.unravel_index(3,(2,2))
Out[465]: (1, 1)
In [466]: a[1,:]
Out[466]: array([0, 4])

或在一个表达式中:

In [467]: a[np.unravel_index(a.argmax(), a.shape)[0], :]
Out[467]: array([0, 4])

从答案的长度可以看出,这不是沿/沿轴的最大值的通常定义。

沿numpy数组中的轴求和可能会更深入地了解“沿轴”的含义。 相同的定义适用于summeanmax运算。

===================

要选择最大norm行,请首先计算范数。 norm以相同的方式使用axis参数。

In [537]: np.linalg.norm(a,axis=1)
Out[537]: array([ 2.23606798,  4.        ])
In [538]: np.argmax(_)
Out[538]: 1
In [539]: a[_,:]
Out[539]: array([0, 4])

此图将帮助您了解轴选项。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM