【问题标题】:numpy 2d array max/argmaxnumpy 二维数组最大值/参数最大值
【发布时间】:2014-06-28 08:20:09
【问题描述】:

我有一个 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]])

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

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

您可以在第一个维度上使用索引np.arange(len(A))(因为您希望每行有一个值)以及在第二个维度上与每行上的索引相对应的索引(压缩)来幻想索引:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-21
    • 2017-03-16
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多