私は追跡している要素のペアについて対称的な情報を保持する2次元のデータ配列を持っています。これはトーナメントのラウンドロビンブラケットに非常によく似ています。その類推を踏まえて、各プレイヤーはある列を占有し、列データは与えられた相手に対する得点となる。 「レガシー」の理由で、すべての得点は自分自身に対するスコアを除いて正の数になります.与えられた列のナンシー最小値
与えられたプレイヤーの最悪の得点を求めて、得点と相手の両方を返したいとしますそのスコアのために遊んだ。どうすればいい?
平凡なバージョンは、次のようになります。
minimum = float('inf')
min_opp = None
for opponent_id in player_ids:
if opponent_id != player_id:
score = match_matrix[player_id, opponent_id]
if score < minimum:
minimum = score
min_opp = opponent_id
return minimum, min_opp
しかし、それがすべてでnumpyののパワーを使用していません。私は簡単な解決策が必要なように感じますが、私はそれを見つけることができません。
score = np.min(match_matrix[player, :])
は、自己のスコアを与え、私はかなり正確にthis answer仕事からコードを作成することはできません。
ありがとうございます!
EDIT:This answerは良いアイデアを提供しますが、アレイ全体ではなく、単一の行であることがわかります。
[this](http://stackoverflow.com/a/29394823/6614295)に質問がありますか? – jotasi
対角を無視しているナンシーアレイの最小値の可能な複製(http://stackoverflow.com/questions/29394377/minimum-of-numpy-array-ignoring-diagonal) – jotasi
@jotasi。これは、行単位の場合ではなく、行列全体に対する質問に答えるものです。私はそれを欺瞞とは見なしません。 –