Python numpy.correlate:完整和有效之间的关系

Python numpy.correlate:完整和有效之间的关系,python,numpy,convolution,cross-correlation,Python,Numpy,Convolution,Cross Correlation,我在两组数据上使用numpy.correlate,这两组数据的值都很大 文件表明: 模式:{'full','valid','same'},可选的'full': 默认情况下,模式为“满”。这将返回每个点的卷积 重叠,输出形状为(N+M-1,)。在 卷积,信号不完全重叠,边界 效果是可以看到的 “相同”:模式相同返回最大长度(M,N)的输出。边界效应 仍然可见 “valid”:模式valid返回长度为max(M,N)-min(M,N)的输出+ 1.卷积积仅用于信号完全重叠的点。信号边界之外的值不起作

我在两组数据上使用numpy.correlate,这两组数据的值都很大

文件表明:

模式:{'full','valid','same'},可选的'full':

默认情况下,模式为“满”。这将返回每个点的卷积 重叠,输出形状为(N+M-1,)。在 卷积,信号不完全重叠,边界 效果是可以看到的

“相同”:模式相同返回最大长度(M,N)的输出。边界效应 仍然可见

“valid”:模式valid返回长度为max(M,N)-min(M,N)的输出+ 1.卷积积仅用于信号完全重叠的点。信号边界之外的值不起作用

根据这些解释,我希望对于我的集合,“有效”选项将为我提供与使用“完整”选项返回的值20000相同的值,因为只有该值集合才会叠加。然而,这两个值是不同的


有人能解释一下它是如何工作的吗?

记住Python索引从零开始,而不是从1开始。您想要索引19999而不是20000:

x = np.random.randn(20000)
y = np.random.randn(20000)

np.correlate(x, y, 'valid')[0]
# -29.778322045152521

np.correlate(x, y, 'full')[19999]
# -29.778322045152521

非常感谢。我想该小睡一会儿了。