Python中的短1d向量(2个列表)的快速卷积

时间:2017-01-04 15:17:20

标签: python c numpy convolution

我想在Python中实现两个非常短的向量(1d)的最快卷积(或者在带有Python接口的C中)。仅报告第一个向量的非零值的卷积结果。

示例:

main_vector = [0,0,0,1,1,1,0,0,0] # usually < 250 elements long
mask = [1,1,1]                    # usually 31 elements long
result = [0,0,0,2,3,2,0,0,0]      # result of convolution

结果是 main_vector 掩码的卷积,但结果仅报告main_vector的非零值

到目前为止我最快的解决方案:

result = numpy.convolve(main_vector, mask, "same")
result = numpy.multiply(main_vector, result)

在Cython或其他界面中有更快的方法实现吗?非常感谢任何想法。我正在使用它在生物信息学中进行主题搜索,并且我执行了许多这些卷积。

0 个答案:

没有答案