Estoy tratando de obtener los índices del elemento máximo en una matriz Numpy. Esto se puede hacer usando numpy.argmax
. Mi problema es que me gustaría encontrar el elemento más grande en toda la matriz y obtener los índices de eso.
numpy.argmax
se puede aplicar a lo largo de un eje, que no es lo que quiero, o en la matriz aplanada, que es lo que quiero.
Mi problema es que usar numpy.argmax
con axis=None
devuelve el índice plano cuando quiero el índice multidimensional.
Me vendría bien divmod
conseguir un índice no plano, pero esto se siente feo. ¿Hay alguna forma mejor de hacer esto?
fuente
==
y una tercera vez para extraer losTrue
valores de este resultado. Tenga en cuenta que puede haber más de un elemento igual al máximo.Para obtener el índice no plano de todas las apariciones del valor máximo, puede modificar ligeramente la respuesta de eumiro usando en
argwhere
lugar dewhere
:np.argwhere(a==a.max()) >>> a = np.array([[1,2,4],[4,3,4]]) >>> np.argwhere(a==a.max()) array([[0, 2], [1, 0], [1, 2]])
fuente