📅  最后修改于: 2023-12-03 15:33:14.766000             🧑  作者: Mango
numpy.correlate(a, v, mode='valid'))
是一个用于计算一维数组相关操作的函数,它返回的是离散线性卷积的逆相关函数。
a
:一维数组。v
:一维数组。mode
:可选参数,默认是valid
。表示计算模式,可以选full
,same
,valid
几种。一个一维数组,表示离散线性卷积的逆相关函数。
import numpy as np
a = np.array([1, 2, 3])
v = np.array([0, 1, 0.5])
# 计算模式为默认的"valid"计算模式
c = np.correlate(a, v)
print(c)
# 计算模式为全覆盖"full"计算模式
c = np.correlate(a, v, mode="full")
print(c)
# 计算模式为同尺寸"same"计算模式
c = np.correlate(a, v, mode="same")
print(c)
代码输出结果:
[3.5]
[0.5 1. 2.5 3. 1.5]
[1. 2.5 3. ]
mode="valid"
计算模式这是默认的计算模式,也是最常用的计算模式。对于长度分别为N
和M
的两个序列a
和v
,在计算卷积时,卷积的两个函数必须有重叠部分,否则返回结果为空。因此,在模式valid
下,返回的是卷积结果序列的子序列,长度为:
N - M + 1
以上例子为例,序列a
和序列v
长度分别为3和3,它们的卷积系数长度为5,因此,如果采用该计算模式进行计算,返回的结果将是一个长度为1的序列。
mode="full"
计算模式在计算模式full
下,返回卷积序列的完整结果。结果的长度为N+M-1
,其中,N
是第一个输入向量的长度,M
是第二个输入向量的长度,因为需要对整个卷积序列进行计算,所以两个序列之间没有任何的重叠,而是在计算过程中填补0以保证卷积序列的足够长度。
mode="same"
计算模式在计算模式same
下,返回卷积序列的任一部分。结果型与第一个输入向量具有相同的长度,但卷积仍然具有重叠部分。特别地,卷积的三分之一处应与第一个向量的中间位置对齐,除非M=1
,否则是半开放的,因此,即使是第一个向量长度为1的情况下,该模式下仍将返回结果为1的向量。