繁体   English   中英

numpy 2d array max / argmax

[英]numpy 2d array max/argmax

我有一个numpy矩阵:

>>> A = np.matrix('1 2 3; 5 1 6; 9 4 2')
>>> A
matrix([[1, 2, 3],
        [5, 1, 6],
        [9, 4, 2]])

我想获得每行中最大值的索引以及值本身。 我可以使用A.argmax(axis = 1)得到最大值的索引,在这种情况下我会得到:

>>> indices = A.argmax(axis=1)
>>> indices
matrix([[2],
        [2],
        [0]])

如何使用'indices'数组来获取矩阵中每行的最大值数组? 有什么方法可以更有效地或在一次操作中做到这一点? 是否有一个函数可以返回值及其行和列坐标?

您可以使用第一维上的索引np.arange(len(A))进行花式索引(因为您希望每行得到一个值),并且您的索引(压缩)对应于第二维上每行的索引:

A[np.arange(len(A)) , indices.squeeze()]
=> matrix([[3, 6, 9]])

暂无
暂无

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

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