例如,我有一个二维矩阵:
[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]
我想获取最多5s的行和列的索引。这应该是第三行和第五列。我不想使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句