例如,我有一个二维矩阵:
[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/