¿Cómo puedo obtener la posición (índices) del valor más grande en una matriz NumPy multidimensional?
Respuestas:
El argmax()
método debería ayudar.
Actualizar
(Después de leer el comentario) Creo que el argmax()
método también funcionaría para matrices multidimensionales. La documentación vinculada da un ejemplo de esto:
>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3
Actualización 2
(Gracias al comentario de KennyTM ) Puede usar unravel_index(a.argmax(), a.shape)
para obtener el índice como una tupla:
>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)
unravel_index(a.argmax(), a.shape)
para obtener el índice como una tupla.
(editar) Me refería a una respuesta anterior que se había eliminado . Y la respuesta aceptada vino después de la mía. Estoy de acuerdo en que argmax
es mejor que mi respuesta.
¿No sería más legible / intuitivo hacer esto?
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
O,
numpy.argwhere(a.max() == a)
Una forma alternativa es cambiar la numpy
matriz list
y usar max
y index
métodos:
List = np.array([34, 7, 33, 10, 89, 22, -5])
_max = List.tolist().index(max(List))
_max
>>> 4