二维矩阵中某个轴上的 Numpy.argmax()
Posted
技术标签:
【中文标题】二维矩阵中某个轴上的 Numpy.argmax()【英文标题】:Numpy.argmax() on certain axis in 2D matrix 【发布时间】:2014-05-14 09:03:14 【问题描述】:我目前正在创建一个排名算法来对学生之间的关系进行排名。在我的 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】:这将为您提供矩阵 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,:])
【讨论】:
以上是关于二维矩阵中某个轴上的 Numpy.argmax()的主要内容,如果未能解决你的问题,请参考以下文章