2

現在、学生間の関係をランク付けするランキング アルゴリズムの作成に取り組んでいます。私の NxN マトリックス F: F[i, j] は、生徒 i と生徒 j の関係を表します。値が高いほど、関係が強くなります。

私の問題はそのようなものです。k 人の学生のクラスターを作成するには、最初に F の argmax を選択します。argmax がインデックス (i, j) を返す場合、学生 i と j をクラスターに追加します。次に、軸 i と j に沿って F の argmax を見つけ、2 つのうち大きい方をクラスター内の次の生徒として取得します。次に、クラスター内の生徒が k 人になるまで、クラスター内の各生徒の軸に沿ってこのプロセスを繰り返します。

私が混乱している場所: numpy.argmax() は、検索する軸の引数として平坦化された軸を取ります。numpy.argmax(F, flattenedAxis) を実行できるように、軸 i と j を平坦化するにはどうすればよいですか?

私はPythonの比較的初心者なので、これはおそらく私が知らなかった簡単な答えを持っています. 前もって感謝します。

4

1 に答える 1

4

これにより、行列 F の最大要素のインデックスが得られます。

ind = np.unravel_index(np.argmax(F),F.shape)

これにより、列 j の最大要素の行番号が得られます。

max_row_in_col_j = np.argmax(F[:,j])

これにより、行 i の最大要素の列番号が得られます。

max_col_in_row_i = np.argmax(F[i,:])
于 2014-04-02T20:45:53.893 に答える