Учитывая массив Nx2 из N точек ([строка, столбец]):
points = np.array([
[r1, c1],
[r2, c2],
...
])
И учитывая двумерную матрицу, с которой я хочу работать:
img = np.arange(400).reshape(20,20)
Я ищу эффективный способ взять 2D-срезы img
с использованием индексов.
Так что, если я хочу срез с заданной высотой h
и шириной w
, псевдокод будет:
p_rows = points[:,0]
p_cols = points[:,1]
patches = img[p_rows:p_rows+h, p_cols:p_cols+w]
Так, что результатом будет матрица Nxhxw. Но, увы, вещание не спасло меня в этот раз.
Я смотрел на np.r_
, np.select
, np.lib.stride_tricks.as_strided
, np.take
... Но пока не повезло.