Фильтр Сципи с многомерным (или нескалярным) выходом

Есть ли фильтр, похожий наndimage«sgeneric_filter что поддерживает векторный вывод? Мне не удалось сделатьscipy.ndimage.filters.generic_filter вернуть больше, чем скаляр. Раскомментируйте строку в коде ниже, чтобы получить ошибку:TypeError: only length-1 arrays can be converted to Python scalars.

Я ищу универсальный фильтр, который обрабатывает 2D или 3D массивы и возвращает вектор в каждой точке. Таким образом, вывод будет иметь одно добавленное измерение. Для примера ниже я бы ожидал что-то вроде этого:

m.shape    # (10,10)
res.shape  # (10,10,2)

Пример кода

import numpy as np
from scipy import ndimage

a = np.ones((10, 10)) * np.arange(10)

footprint = np.array([[1,1,1],
                    [1,0,1],
                    [1,1,1]])

def myfunc(x):
    r = sum(x)
    #r = np.array([1,1])  # uncomment this
    return r

res = ndimage.generic_filter(a, myfunc, footprint=footprint)

Ответы на вопрос(2)

Ваш ответ на вопрос