我在两组数据上使用numpy.correlate,这两组数据都是20000个值。
文档指出:
模式:{'完整','有效','相同'},可选'完整':
默认情况下,模式为“已满”。这将返回每个点的卷积 重叠,输出形状为(N + M-1,)。在终点 卷积,信号不完全重叠,边界 可以看到效果。
'same':模式相同返回长度max(M,N)的输出。边界效应 仍然可见。
'有效':模式有效返回长度max(M,N) - min(M,N)+的输出 1.卷积乘积仅用于信号完全重叠的点。信号边界外的值无效
根据这些解释,我希望我的集合中“有效”选项会给我与通过使用“完整”选项返回的值20000获得的值相同的值,因为只有此值才会叠加集合。但是这两个值是不同的。
有人可以解释它是如何运作的吗?
答案 0 :(得分:1)
请记住,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