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