我必须做以下类型的许多循环
for i in range(len(a)):
for j in range(i+1):
c[i] += a[j]*b[i-j]
其中 a 和 b 是短数组(大小相同,大约在 10 到 50 之间)。这可以使用卷积有效地完成:
import numpy as np
np.convolve(a, b)
但是,这给了我完整的卷积(即,与上面的 for 循环相比,向量太长了)。如果我在卷积中使用“相同”选项,我会得到中心部分,但我想要的是第一部分。当然,我可以从完整的向量中去掉我不需要的东西,但如果可能的话,我想去掉不必要的计算时间。有人可以建议对循环进行更好的矢量化吗?