Get the position of the largest value in a multi-dimensional NumPy array

Viewed 80861

How can I get get the position (indices) of the largest value in a multi-dimensional NumPy array?

4 Answers

You can simply write a function (that works only in 2d):

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)

An alternative way is change numpy array to list and use max and index methods:

List = np.array([34, 7, 33, 10, 89, 22, -5])
_max = List.tolist().index(max(List))
_max
>>> 4
Related