У меня есть массив A
, скажем:
import numpy as np
A = np.array([1,2,3,4,5,6,7,8])
И я хочу создать новый массив B
, заменив каждый элемент в A
медианой его четырех ближайших соседей, без , принимая во внимание значение в данной позиции ... например:
B[2] = np.median([A[0], A[1], A[3], A[4]]) (=3)
Дело в том, что мне нужно выполнить это на гигантском A
, и я хочу оптимизировать время, поэтому я хочу избегать циклов или тому подобного. И ... мне плевать на результат по краям.
Я уже пробовал scipy.ndimage.filters.median_filter
, но он не выдает желаемый результат:
import scipy.ndimage
B = scipy.ndimage.filters.median_filter(A,footprint=[1,1,0,1,1],mode='wrap')
, который производит B=[7,4,4,5,6,7,6,6]
, что явно не правильный ответ.
Любая идея приветствуется.