在 Python 中使用 1D 核对 3D 数组进行卷积

时间:2021-04-14 08:22:29

标签: python convolution

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

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

1 个答案:

答案 0 :(得分:0)

使用:

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