我目前正致力于创建排名算法来对学生之间的关系进行排名。在我的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的相对初学者,所以这可能有一个简单的答案,其存在我不知道。提前谢谢。
答案 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,:])