Умножьте 3d * 2d элемент на элемент - PullRequest
0 голосов
/ 28 ноября 2018

Здравствуйте, я пытаюсь взвесить серию изображений по матрице коэффициентов.

Есть ли способ избежать и сделать это быстро?

for i in range(0, shape.mbn[2])
    mbn_eq[:,:,i] = mbn[:,:,i] .* coeff_n;

mbn_eq - это серия изображений m * n * i, а coeff_n - матрица коэффициентов

Допустим, mbn

{[1,1], [1,1];
[2,2], [2,2];}

это будет матрица coeff_n

{[1,2], [3,4]}

, поэтому желаемый результат будет

{[1,2], [3,4];
[2,4], [6,8]}

1 Ответ

0 голосов
/ 28 ноября 2018

Используйте массивы numpy, они поддерживают трансляцию за кадром.

import numpy as np 

mbn = np.array([[1,1],[1,1],[2,2],[2,2]])
mbn = mbn.reshape(2,2,2)
print(mbn)
print(mbn.shape)
coeff = np.array([[1,2], [3,4]])

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