我需要创建一个程序,给定一个矩阵,在矩阵中请求一行,并给出该行中最高值的位置。
例如,对于矩阵:
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