Как установить массив 4d с массивом 2d индексов, используя Numpy - PullRequest
1 голос
/ 06 мая 2020

Я только начал изучать numpy и Python несколько дней go, поэтому прошу прощения, если я сделал какие-либо очевидные ошибки.

В основном я хочу преобразовать следующее для l oop в более быстрое решение. Я знаю, что это можно сделать с помощью numpy, я просто не знаю, как.

img = np.zeros((height,width,3), np.uint8) #image matrix
indexes = np.zeros((height,width), np.uint8)

for y in range(height):
    for x in range(width):
        img[y][x] = vid[indexes[y][x]][y][x] #for 1 pixel

#"vid" is a 4d array with vid[frameNumber] being one image.

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Вы можете использовать массив индексов через np.ogrid:

y, x = np.ogrid[:height, :width]
img = vid[indexes[y, x], y, x]
0 голосов
/ 06 мая 2020

Я бы сделал:

y,x = np.meshgrid(np.arange(height),np.arange(width))
img = vid[indexes, y, x]

print(img.shape)
# output (height, width, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...