亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Numpy.convolve使用Python實現滑動平均濾波的思路詳解

 更新時間:2019年05月16日 14:24:44   作者:小宋是呢  
這篇文章主要介紹了Python極簡實現滑動平均濾波(基于Numpy.convolve)的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

1.滑動平均概念

滑動平均濾波法(又稱遞推平均濾波法),時把連續(xù)取N個采樣值看成一個隊列 ,隊列的長度固定為N ,每次采樣到一個新數據放入隊尾,并扔掉原來隊首的一次數據.(先進先出原則)  把隊列中的N個數據進行算術平均運算,就可獲得新的濾波結果。N值的選取:流量,N=12;壓力:N=4;液面,N=4~12;溫度,N=1~4

優(yōu)點:  對周期性干擾有良好的抑制作用,平滑度高  適用于高頻振蕩的系統 

缺點:  靈敏度低  對偶然出現的脈沖性干擾的抑制作用較差  不易消除由于脈沖干擾所引起的采樣值偏差  不適用于脈沖干擾比較嚴重的場合  比較浪費RAM 

2.解決思路

可以發(fā)現滑動平均濾波法計算很類似與一維卷積的工作原理,滑動平均的N就對應一維卷積核大?。ㄩL度)。

步長會有些區(qū)別,滑動平均濾波法滑動步長為1,而一維卷積步長可以自定義。還有區(qū)別就是一維卷積的核參數是需要更新迭代的,而滑動平均濾波法核參數都是一。

我們應該怎么利用這個相似性呢?其實也很簡單,只需要把一維卷積核大?。ㄩL度)和N相等,步長設置為1,核參數都初始為1就可以了。由于一維卷積具備速度快,然后我們就可以使用一維卷積來實現這個功能了,快速高效。

使用深度學習框架實現這個功能是否有些大材小用了?是有些大材小用了,因為這里使用卷積的核參數不用更新,其實沒必要使用復雜的深度學習框架,如果Numpy中可以實現這些功能就更簡單方便了。

說干就干,經過查找發(fā)現Numpy.convolve可以實現我們想要的功能。

3.Numpy.convolve介紹

numpy.convolve(a, v, mode=‘full')

參數:
    a:(N,)輸入的一維數組
    v:(M,)輸入的第二個一維數組
    mode:{‘full', ‘valid', ‘same'}參數可選
      ‘full' 默認值,返回每一個卷積值,長度是N+M-1,在卷積的邊緣處,信號不重疊,存在邊際效應。
      ‘same' 返回的數組長度為max(M, N),邊際效應依舊存在。
      ‘valid'  返回的數組長度為max(M,N)-min(M,N)+1,此時返回的是完全重疊的點。邊緣的點無效。

和一維卷積參數類似,a就是被卷積數據,v是卷積核大小。

4.算法實現

def np_move_avg(a,n,mode="same"):
  return(np.convolve(a, np.ones((n,))/n, mode=mode))

原理說明

運行平均值是卷積數學運算的一個例子。對于運行平均值,沿著輸入滑動窗口并計算窗口內容的平均值。對于離散的1D信號,卷積是相同的,除了代替計算任意線性組合的平均值,即將每個元素乘以相應的系數并將結果相加。那些系數,一個用于窗口中的每個位置,有時稱為卷積核?,F在,N值的算術平均值是(x_1 + x_2 + ... + x_N) / N,所以相應的內核是(1/N, 1/N, ..., 1/N),這正是我們通過使用得到的np.ones((N,))/N。

邊緣處理

該mode的參數np.convolve指定如何處理邊緣。在這里選擇了same模式,這樣可以保證輸出長度一種,但你可能還有其他優(yōu)先事項。這是一個說明模式之間差異的圖:

import numpy as np
import matplotlib.pyplot as plt
def np_move_avg(a,n,mode="same"):
  return(np.convolve(a, np.ones((n,))/n, mode=mode))
modes = ['full', 'same', 'valid']
for m in modes:
  plt.plot(np_move_avg(np.ones((200,)), 50, mode=m));
plt.axis([-10, 251, -.1, 1.1]);
plt.legend(modes, loc='lower center');
plt.show() ​

5.參考

1. https://stackoverflow.com/questions/13728392/moving-average-or-running-mean

總結

以上所述是小編給大家介紹的Python實現滑動平均濾波的思路詳解(基于Numpy.convolve),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • 淺談python中的正則表達式(re模塊)

    淺談python中的正則表達式(re模塊)

    本篇文章主要介紹了淺談python中的正則表達式(re模塊),通過內嵌集成re模塊,程序媛們可以直接調用來實現正則匹配,有興趣的可以了解一下
    2017-10-10
  • 解決Python selenium get頁面很慢時的問題

    解決Python selenium get頁面很慢時的問題

    今天小編就為大家分享一篇解決Python selenium get頁面很慢時的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python tkinter實現界面切換的示例代碼

    python tkinter實現界面切換的示例代碼

    今天小編就為大家分享一篇python tkinter實現界面切換的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python?Tkinter模塊使用方法詳解

    python?Tkinter模塊使用方法詳解

    Python的GUI庫非常多,之所以選擇 Tkinter,一是最為簡單,二是自帶庫,不需下載安裝,隨時使用,跨平臺兼容性非常好,下面這篇文章主要給大家介紹了關于python?Tkinter模塊使用方法的相關資料,需要的朋友可以參考下
    2022-04-04
  • Django REST Swagger實現指定api參數

    Django REST Swagger實現指定api參數

    這篇文章主要介紹了Django REST Swagger實現指定api參數,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 用python代碼將tiff圖片存儲到jpg的方法

    用python代碼將tiff圖片存儲到jpg的方法

    今天小編就為大家分享一篇用python代碼將tiff圖片存儲到jpg的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 動態(tài)創(chuàng)建類實例代碼

    動態(tài)創(chuàng)建類實例代碼

    Python中要創(chuàng)建一個類的實例,要首先導入該類或者該類所屬的模塊。
    2009-10-10
  • Python使用for實現無限循環(huán)的多種方式匯總

    Python使用for實現無限循環(huán)的多種方式匯總

    這篇文章主要介紹了Python使用for實現無限循環(huán)的多種方式匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python文本特征抽取與向量化算法學習

    Python文本特征抽取與向量化算法學習

    這篇文章主要為大家詳細介紹了Python文本特征抽取與向量化算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python每天定時運行某程序代碼

    python每天定時運行某程序代碼

    這篇文章主要介紹了python每天定時運行某程序代碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08

最新評論