Numpy.argmax()在2D矩阵的某个轴上

时间:2014-04-02 20:28:04

标签: python numpy matrix flatten argmax

我目前正致力于创建排名算法来对学生之间的关系进行排名。在我的NxN矩阵F中:     F [i,j]指的是学生i和学生j之间的关系。价值越高,关系越强。

我的问题是这样的。为了创建一个k学生群集,我首先选择F的argmax。如果argmax返回索引(i,j),我将学生i和j添加到我的群集中。然后我想在轴i和j上找到F的argmax,并将两者中的较大者作为我群集中的下一个学生。然后,我沿着群集中每个学生的轴重复此过程,直到我的群集中有k个学生。

我感到困惑的地方:     numpy.argmax()将一个展平的轴作为要搜索的轴的参数。如何压平轴i和j以便我可以执行numpy.argmax(F,flattenedAxis)?

我是Python的相对初学者,所以这可能有一个简单的答案,其存在我不知道。提前谢谢。

1 个答案:

答案 0 :(得分:3)

这将为您提供矩阵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,:])