Get the position of the biggest item in a multi-dimensional numpy array
如何获得多维numpy数组中最大项的位置?
更新
(读完评论后)我相信
1 2 3 4 | >>> a = array([[10,50,30],[60,20,40]]) >>> maxindex = a.argmax() >>> maxindex 3 |
更新2
(感谢KennyTM的评论)您可以使用
1 2 3 | >>> from numpy import unravel_index >>> unravel_index(a.argmax(), a.shape) (1, 0) |
号
(编辑)我指的是一个被删除的旧答案。公认的答案就在我的后面。我同意
这样做不是更易读/更直观吗?
1 2 | numpy.nonzero(a.max() == a) (array([1]), array([0])) |
或者,
1 | numpy.argwhere(a.max() == a) |
。
您可以简单地编写一个函数(只在二维中工作):
1 2 3 4 5 6 7 8 9 10 | def argmax_2d(matrix): maxN = np.argmax(matrix) (xD,yD) = matrix.shape if maxN >= xD: x = maxN//xD y = maxN % xD else: y = maxN x = 0 return (x,y) |