У меня есть массив 3d numpy, представляющий изображение RGB в форме (512, 512, 3). У меня также есть список координат, представляющих пиксели в определенном порядке, которые я затем поворачиваю на определенное количество мест. Массив coords имеет вид stati c и генерируется один раз на протяжении всей программы. Я хочу создать новый массив numpy с соответствующим преобразованием в списке пикселей.
Текущий код, который я сейчас использую, выглядит следующим образом:
import numpy as np
coords: [(int, int)] = [(0, 0), (0, 1), (1, 1), (3,3)] # for example
def rotate_coords(im1: np.array, n: int) -> np.array:
im2 = np.copy(im1)
for destination_coord, source_coord in zip(coords[-n:] + coords[:-n], coords):
im2[destination_coord] = im1[source_coord ]
return im2
Есть ли способ ускорить его, возможно, назначив сразу все координаты?