Необычное индексирование для замены значений N-мерного массива - PullRequest
1 голос
/ 05 июля 2019

В настоящее время я работаю с пустым массивом, содержащим информацию о цвете пикселя формы (ширина, высота, 3).

Я хотел бы иметь возможность заменить цвета в исходном массиве цветами, описанными вновый массив и делать это БЕЗ циклов, если это возможно.

Я пытался проиндексировать его с помощью причудливых индексов, но не совсем знал, как правильно его индексировать.

Оптимально функция должна выглядеть примерно так:

>>>import numpy as np
>>>imgdat = np.random.randint(0, 255, size=(2, 2, 3))
>>>imgdat
   [[[138 149  41]
     [100 186 136]]

    [[181 202 169]
     [205 247 195]]]
>>>pixels = np.random.randint(0, imgdat.shape[0], size=(2, 2))
>>>pixels
   [[1,0]
    [0,1]]
>>>colors = np.random.randint(0, 255, size=(2, 3))
>>>colors
   [[ 16 229 138]
    [ 86  76 209]]
######apply the function#######
>>>filledimgdat = fillPixels(imgdat, pixels, colors) 
>>>filledimgdat
   [[[ 138 149  41]
     [ 86  76 209]]

    [[ 16 229 138]
     [205 247 195]]]

РЕДАКТИРОВАТЬ:

Поскольку мое первоначальное описание было немного неясным, я пытаюсь заменить определенные цвета в imgdat на определенные индексы.Если кто-нибудь может придумать лучший способ отформатировать типы данных или обработать информацию, чтобы упростить такую ​​операцию, как это, то это также приветствуется.

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