比方说,我有单独的二维数组,具有不同的行数:
数组一:
1 2 3
4 5 6
7 8 9
第二个数组:
10 11 12
13 14 15
我想沿零轴对这两个数组进行卷积,输出大小与数组1相同,类似于使用mode ='same'时scipy的卷积方法将输出。
因此,两个数组的第1列被卷积在一起,等等,两个数组的第2列被卷积在一起,等等。我想这样做的方式对于较大的数组(最多100,000行)在计算上是可行的,因此,我尽可能避免使用for循环。 numpy / scipy或任何其他库是否具有执行此操作的任何方法?
所需的输出应如下所示:
10 22 36
53 83 117
122 158 198
具有与第一个输入数组相同的形状。每列都是从数组1和2中对应列的卷积获得的输出。
答案 0 :(得分:0)
np.convolve
的实现只需调用np.core.multiarray.correlate
(因为卷积与翻转一个向量后计算相关性相同)。似乎很多人都希望使用一种Numpy方法来计算沿特定轴的相关性,但是还不存在(
Apply numpy's correlation to specific axis (autocorrelation)
Compact way of simulating 'axes' parameter in scipy.signal.fftconvolve?
但是,您可以使用循环,看看scipy.signal.fftconvolve
是否可以解决您的问题。