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



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

例如,对于矩阵:

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]。

为此,您可以使用 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

最新更新