Я пытаюсь получить индексы максимального элемента в массиве Numpy. Это можно сделать с помощью numpy.argmax
. Моя проблема в том, что я хотел бы найти самый большой элемент во всем массиве и получить его индексы.
numpy.argmax
может быть применен либо вдоль одной оси, что не то, что я хочу, либо к сплющенному массиву, что отчасти то, что я хочу.
Моя проблема в том, что использование numpy.argmax
with axis=None
возвращает плоский индекс, когда мне нужен многомерный индекс.
Я мог бы использовать divmod
для получения не плоского индекса, но это ужасно. Есть ли лучший способ сделать это?
источник
==
, и третий раз извлечьTrue
значения из этого результата. Обратите внимание, что может быть более одного элемента, равного максимуму.Чтобы получить не плоский индекс всех вхождений максимального значения, вы можете немного изменить ответ eumiro, используя
argwhere
вместоwhere
: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]])
источник