改善Numpy表现

改善Numpy表现,第1张

改善Numpy表现

scipy中用于执行2d卷积的代码有点混乱且未优化。如果要了解scipy的低级功能,请参阅http://svn.scipy.org/svn/scipy/trunk/scipy/signal/firfilter.c。

如果您想要的只是使用一个小的,恒定的内核(如您所示的内核)进行处理,则可以使用如下功能:

def specialconvolve(a):    # sorry, you must pad the input yourself    rowconvol = a[1:-1,:] + a[:-2,:] + a[2:,:]    colconvol = rowconvol[:,1:-1] + rowconvol[:,:-2] + rowconvol[:,2:] - 9*a[1:-1,1:-1]    return colconvol

函数利用了上面建议的DarenW之类的内核可分离性,并且利用了更优化的numpy算术例程。根据我的测量,它比convolve2d函数快1000倍以上。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5666743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存