2017-11-20 8 views
-1

行列を与えられた行列を求めるプログラムを作成する必要があります。このプログラムは行列の行を求め、その行の最高値の位置を与えます。マトリックスと例えば行列の行の最高値の位置を取得する方法

:(行の[2]の最高値は、その行の位置1にある4であるため)

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

値2を与え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

した後は、所望の出力が何であるかを私たちに語ってきたあなたがしていることができます。あなたは実際の出力が何であるか教えてくれませんでした。あなたのプログラムはどのような出力を生成しますか?エラーが発生した場合、エラーは何ですか? – jwpfox

+0

私はちょうどそれを編集しました。ありがとうございます – Alex

+0

次は 'if j> maxdist:'とは何でしょうか?その位置の値と前の最大値とを比較したくないのですか? – jwpfox

答えて

0
あなたがnumpyのを使用することができます

とこれに対して1軸目のargmaxを使用して、1行あたりの最大値の位置を取得します。あなた

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

関連する問題