二维矩阵中某个轴上的 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()的主要内容,如果未能解决你的问题,请参考以下文章

Numpy反向keras to_categorical

《计算机图形学基础》之变换矩阵

数字图像处理

在多维数组上使用 numpy.argmax()

Jacobi 矩阵

当工具提示在 ng-bootstrap 中到达 y 轴上的某个点时,是不是可以更改工具提示的位置?