如何获得矩阵行中最高值的位置

时间:2017-11-20 10:48:41

标签: python matrix row

我需要创建一个程序,给定一个矩阵,在矩阵中请求一行,并给出该行中最高值的位置。

例如矩阵:

D = [(0 1 3),
     (1 0 4),
     (3 4 0)]

当给定值2时应该返回1(因为在行[2]中,最高值是4,该行在该行中的位置1)。

现在我正在尝试:

def farthest(matrix, row, point):
    maxdist = 0
    matrix2 = []
    for i in range(0, len(matrix)):
        if i == int(point):
            matrix2.append(i)
        if i != int(point):
            pass
        for j in range(0, len(matrix2)):
            if j < maxdist :
                pass
            if j > maxdist:
                maxdist = maxdist + j
    print(matrix2)
    print(maxdist)
    return matrix2

我应该找到一个使用循环的解决方案 我得到的当前输出是[2]和[0]。

1 个答案:

答案 0 :(得分:0)

您可以使用numpy和argmax作为轴1来获取每行的最大值的位置。

import numpy as np

D = [(0, 1, 3),
     (1, 0, 4),
     (3, 4, 0)]

t = np.array(D).argmax(axis=1)
t

哪个会给你

array([2, 2, 1])

然后可以使用您之后的行进行索引

t[2]
1