📜  numpy.correlate()函数– Python(1)

📅  最后修改于: 2023-12-03 15:33:14.766000             🧑  作者: Mango

numpy.correlate()函数- Python

简介

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"计算模式

这是默认的计算模式,也是最常用的计算模式。对于长度分别为NM的两个序列av,在计算卷积时,卷积的两个函数必须有重叠部分,否则返回结果为空。因此,在模式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的向量。