Получение ArgMax из 2d Array - PullRequest
       38

Получение ArgMax из 2d Array

0 голосов
/ 13 декабря 2018

так что мои вопросы довольно просты.У меня есть трехмерный массив, и я хотел бы получить максимальное значение только для первых двух осей.

import numpy as np
array = np.zeros((3,3,2))
array[1][1][0] = 1
array[1][1][1] = 2

Как теперь проверить вдоль [1] [1], какое значение имеет максимальное значение?Я подозреваю, что использовать np.argmax (), но я гуглил целую вечность и не мог найти рабочее решение.Заранее спасибо!

Чтобы было ясно, я хочу, чтобы мое возвращение было 2, только одно целое число.

1 Ответ

0 голосов
/ 13 декабря 2018

Для того, что вы описываете, вы можете просто сделать:

array[1,1].max()

, который вернет 2. Если вы вместо этого хотите получить максимальное значение вдоль последней оси для каждой комбинации первых двух осей, вы должны сделать:

array.max(axis=-1)

, который в вашем случае вернет массив максимальных значений 3x3 вдоль последней оси:

[[0. 0. 0.]
 [0. 2. 0.]
 [0. 0. 0.]]

Если вы хотите, чтобы индексы максимальное значение, вместо этого вы бы использовали argmax, как и max выше:

array[1,1].argmax()

, который в этом случае возвращает просто 1.Затем вам придется добавить это к (1,1), чтобы получить полный индекс к максимальному значению в вашем исходном массиве (то есть (1,1,1)).

...