I'm trying to get the indices of the maximum element in a Numpy array. This can be done using numpy.argmax
. My problem is, that I would like to find the biggest element in the whole array and get the indices of that.
numpy.argmax
can be either applied along one axis, which is not what I want, or on the flattened array, which is kind of what I want.
My problem is that using numpy.argmax
with axis=None
returns the flat index when I want the multi-dimensional index.
I could use divmod
to get a non-flat index but this feels ugly. Is there any better way of doing this?
The numpy. argmax() function returns indices of the max element of the array in a particular axis. Return : Array of indices into the array with same shape as array.
The argmax function returns the argument or arguments (arg) for the target function that returns the maximum (max) value from the target function.
argmax() function returns the indices of the maximum values along an axis. In case of multiple occurrences of the maximum values, the indices corresponding to the first occurrence will be returned.
You could use numpy.unravel_index()
on the result of numpy.argmax()
:
>>> a = numpy.random.random((10, 10)) >>> numpy.unravel_index(a.argmax(), a.shape) (6, 7) >>> a[6, 7] == a.max() True
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With