Estou tentando obter os índices do elemento máximo em uma matriz Numpy. Isso pode ser feito usando numpy.argmax
. Meu problema é que eu gostaria de encontrar o maior elemento em todo o array e obter os índices disso.
numpy.argmax
pode ser aplicado ao longo de um eixo, que não é o que eu quero, ou na matriz achatada, que é mais ou menos o que eu quero.
Meu problema é que usar numpy.argmax
com axis=None
retorna o índice plano quando quero o índice multidimensional.
Eu poderia usar divmod
para obter um índice não uniforme, mas isso parece feio. Existe alguma maneira melhor de fazer isso?
fonte
==
e uma terceira vez para extrair osTrue
valores desse resultado. Observe que pode haver mais de um item igual ao máximo.Para obter o índice não plano de todas as ocorrências do valor máximo, você pode modificar a resposta de eumiro ligeiramente usando em
argwhere
vez 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]])
fonte