Python 中的 3D 数组与 1D 内核的卷积

Convolution of 3D array with 1D kernel in Python

是否可以将一维数组与三维数组进行卷积?例如:

A 是我想要进行卷积的 8x2x2 矩阵。假设 A 有 2x2 个子矩阵 (A = A7 A6 A5... A0) 每个子矩阵都是 2x2。 B 是包含标量权重 (B0 B1 B2 B3 B4) 的 5x1 数组。我想要做的是将 B 数组与 A 数组的第一维进行卷积,在本例中为 8。我知道 numpy.convolve 可用,但它不支持多维。澄清我的例子:Convolution example

使用:

arr_out = np.apply_along_axis(
                lambda x: np.convolve(x, B.flatten(), mode = 'same'), 
                axis = 0, arr = A)