Есть ли способ получить матрицу максимальных значений в NumPy? - PullRequest
1 голос
/ 29 октября 2019

Проблема в том, что у меня есть изображение, которое содержит каналы RGB. Я хочу получить из него матрицу с максимальными значениями для изображения по оси, то есть каналов.

например

np.random.seed(42)
rand=np.random.randint(low=0, high=255, size=(4,8,3), dtype="uint8")
rand[0][np.newaxis,:,:]=
  [[[102, 220, 225],
    [ 95, 179,  61],
    [234, 203,  92],
    [  3,  98, 243],
    [ 14, 149, 245],
    [ 46, 106, 244],
    [ 99, 187,  71],
    [212, 153, 199]]

Из этого я хочу получить матрицу, которая будет выглядетькак это [[220], [179], [234], [243], [245], [244], [187], [212]].

Argmax дает мне индекс таких значений.

 np.argmax(exp,2) #array([[2, 1, 0, 2, 2, 2, 1, 0]], dtype=int64)

Как использовать эту информацию, чтобы получить значения самостоятельно, или есть какие-то другие способы их получения?

Тот же вопрос касается полной матрицы, а не только одной строки.

1 Ответ

0 голосов
/ 29 октября 2019

Я думаю, что нашел ответ - он так же прост, как np.max (rand, axis = 2), как здесь .

И, как в комментарии @Divakar - другой способиспользовать rand.max (axis = -1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...