6
在我去了解Numpy.correlate()
函数实际上是如何工作的,我得到它的实现在纯Python,但我所看到的是非常令人失望:multiarray.correlate2(a,v,mode)是如何实际执行的?
def correlate(a, v, mode='valid', old_behavior=False):
mode = _mode_from_name(mode)
if old_behavior:
warnings.warn("""Warning.""", DeprecationWarning)
return multiarray.correlate(a, v, mode)
else:
return multiarray.correlate2(a, v, mode)
于是我开始寻找实现multiarray.correlate2(a, v, mode)
功能,但不幸的是我找不到它。我只是说,我正在寻找它,因为我试图自己实现自相关函数,而且我错过了mode='full'
参数中的mode='full'
参数的功能,它使得函数将结果作为一维数组返回。感谢您提前帮助。
谢谢。另外,你能解释'correlate2()'函数是如何工作的,因此它给出了'mode ='full''一个数组? – bluevoxel 2014-12-13 22:51:08
@bluevoxel,你知道'mode = valid'是如何工作的吗?其他两种模式只是指定输出数组的长度。你可以计算任意数组大小的“互相关”。只要公式试图访问无效索引(例如'v [-1]'),你就假设在这个位置你找到了一个'0'。通过从右侧和左侧向零填充'v',直到len(v')== len(a)+ len(v)+ 1',你得到相同的结果。 – cel 2014-12-14 07:54:17