2017-11-20 12 views
-1

행렬이 주어진 경우 행렬에 행을 요청하고 그 행에서 가장 높은 값의 위치를 ​​제공하는 프로그램을 만들어야합니다. 매트릭스와 예행렬에서 가장 높은 값의 위치를 ​​얻는 방법

:

1을 반환한다 값이 주어
D = [(0 1 3), 
    (1 0 4), 
    (3 4 0)] 

(인해 행 [2] 높은 값이 그 행에서 1의 위치에있는 4).

지금 내가 노력하고있어 :

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

한 후에는 원하는 출력이 무엇인지 우리에게 한 당신이 할 수 있습니다. 당신은 실제 결과물이 무엇인지에 대해 말하지 않았습니다. 귀하의 프로그램은 어떤 산출물을 산출합니까? 오류가 발생하면 오류가 무엇입니까? – jwpfox

+0

방금 ​​편집했습니다. 감사합니다 – Alex

+0

다음은'if j> maxdist :'를 어떻게 생각하십니까? 위치의 값과 이전의 최대 값을 비교하지 않으시겠습니까? – jwpfox

답변

0
당신은 NumPy와 사용할 수 있습니다

및 이 경우 1 축당 argmax을 입력하여 행 당 최대 값의 위치를 ​​가져옵니다. 당신

array([2, 2, 1]) 

줄 것이다

import numpy as np 

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

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

은 다음 행이 지수는

t[2] 
1 
+0

문제는 numpy 나 argmax의 작동 방식을 알지 못한다는 것입니다. 루프를 사용하여 솔루션을 찾을 수 있어야합니다. 감사 – Alex