Как выполнить арифметику для элемента в двумерном массиве Numpy с использованием индексов элементов? - PullRequest
0 голосов
/ 20 октября 2019

Контекст

Я реализую алгоритм двумерного дискретного преобразования Фурье, используя Python с Numpy. В соответствии с теорией обработки изображений, чтобы центрировать преобразование изображения, перед выполнением преобразования каждую интенсивность f (x, y) изображения необходимо умножить на (-1) ^ (x + y), где x и y - индексы интенсивностив двумерном массиве, представляющем изображение.

То, что было опробовано

Очевидный подход состоит в итерации по каждой интенсивности и ее индексам с использованием двух циклов for.

Вопрос

Есть ли более элегантное / быстрое решение, использующее операции с матрицами Python / Numpy, или мне следует придерживаться двух циклов for?

1 Ответ

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

Идиоматический путь будет таким:

y,x = np.ogrid[:m,:n]
prefactor = (-1)**(y+x)

Здесь m,n, конечно, размеры вашего массива операндов.

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