Tengo dos matrices de 2-D con las mismas dimensiones del primer eje. En Python, me gustaría convolucionar las dos matrices solo a lo largo del segundo eje. Me gustaría obtener C
debajo sin calcular la convolución a lo largo del primer eje también.Convolución a lo largo de un solo eje
import numpy as np
import scipy.signal as sg
M, N, P = 4, 10, 20
A = np.random.randn(M, N)
B = np.random.randn(M, P)
C = sg.convolve(A, B, 'full')[(2*M-1)/2]
¿Hay una manera rápida?
Gracias por señalarlo. El argumento 'pesos', sin embargo, debe ser 1-D. Es 2-D en mi caso. – Paul
@Paul: ¿cuál es el contexto? ¿Cuáles son los pesos, B? – Benjamin
Cada fila en A se está filtrando por la fila correspondiente en B. Podría implementarlo así, solo pensé que podría haber una manera más rápida. A es del orden de 10s de gigabytes en tamaño y yo uso overlap-add. – Paul