python - 如何在 python 中使用 numpy 获取具有最多给定元素的二维矩阵(列表)中的列和行的索引

标签 python arrays numpy matrix

例如,我有一个二维矩阵:

[0 0 0 0 5 0 0 0

 0 5 0 0 5 0 0 0

 0 0 5 5 5 5 5 0

 5 0 0 0 5 0 0 5

 0 5 0 0 0 0 5 0]

我想获取最多 5 的行和列的索引。这应该是第三行和第五列。我不想使用 for 循环来获得它,因为它花费了太多时间;有没有办法在 python 中使用 numpy 模块来解决它?

最佳答案

这是一种方法。 a 是数组,elem 是要检查的元素:

In [71]: a
Out[71]: 
array([[0, 0, 5, 0, 5, 0, 0, 0],
       [0, 5, 0, 0, 0, 5, 0, 5],
       [0, 0, 5, 0, 5, 0, 5, 0],
       [0, 5, 0, 0, 0, 5, 0, 5],
       [0, 0, 0, 0, 0, 5, 0, 0]])

In [72]: elem = 5

这给出了 elem 出现次数最多的(第一)列:

In [73]: (a == elem).sum(axis=0).argmax()
Out[73]: 5

这给出了 elem 出现次数最多的(第一)行:

In [74]: (a == elem).sum(axis=1).argmax()
Out[74]: 1

关于python - 如何在 python 中使用 numpy 获取具有最多给定元素的二维矩阵(列表)中的列和行的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37751231/

相关文章:

python - 使用 post_save 信号或执行 View 中的逻辑有什么区别

python - Django Form - 动态切换字段存在

python - 将具有坐标和值的字典转换为二维数组

c - 在未排序的整数数组中查找缺失元素的计数

python - 二维数组中沿轴的 Numpy 百分比

python - 在 SciPy 中生成一个又高又瘦的随机正交矩阵

python - 将日期和时间转换为时间戳

python - 任何存在内存使用的对象,如生成器,但可以在必要时返回一个 numpy 数组?

python - 在 cython 中向量化具有两个数组作为输入的类的函数

java - 为什么在我的字符串数组中的字符串之前打印 null?