当前位置:  开发笔记 > 编程语言 > 正文

一维numpy数组的Python中值过滤器

如何解决《一维numpy数组的Python中值过滤器》经验,为你挑选了1个好方法。

我有numpy.array一个尺寸dim_array。我期待获得像这样的中值过滤器scipy.signal.medfilt(data, window_len)

这实际上不起作用,numpy.array可能是因为尺寸为(dim_array, 1)而不是(dim_array, )

如何获得这样的过滤器?

接下来,另一个问题,如何获得其他过滤器,即最小,最大,均值?



1> Divakar..:

基于this post,我们可以创建滑动窗口,以将2D此类窗口的数组设置为其中的行。这些窗口仅是data阵列的视图,因此没有内存消耗,因此非常有效。然后,我们只需ufuncs沿每一行使用它们axis=1

因此,例如,中sliding-位数`可以像这样计算:

np.median(strided_app(data, window_len,1),axis=1)

另外ufuncs,只需在其中使用各自的ufunc名称即可: np.minnp.maxnp.mean。请注意,这是为了提供使用ufunc支持功能的通用解决方案。

为了获得最佳性能,仍然必须研究为这些目的而构建的特定功能。对于所请求的四个函数,我们具有内建函数,如下所示:

中位数:scipy.signal.medfilt

最多:scipy.ndimage.filters.maximum_filter1d

敏:scipy.ndimage.filters.minimum_filter1d

意思 : scipy.ndimage.filters.uniform_filter1d

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有