最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Numpy.convolve使用Python實(shí)現(xiàn)滑動(dòng)平均濾波的思路詳解

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

1.滑動(dòng)平均概念

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

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

缺點(diǎn):  靈敏度低  對偶然出現(xiàn)的脈沖性干擾的抑制作用較差  不易消除由于脈沖干擾所引起的采樣值偏差  不適用于脈沖干擾比較嚴(yán)重的場合  比較浪費(fèi)RAM 

2.解決思路

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

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

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

使用深度學(xué)習(xí)框架實(shí)現(xiàn)這個(gè)功能是否有些大材小用了?是有些大材小用了,因?yàn)檫@里使用卷積的核參數(shù)不用更新,其實(shí)沒必要使用復(fù)雜的深度學(xué)習(xí)框架,如果Numpy中可以實(shí)現(xiàn)這些功能就更簡單方便了。

說干就干,經(jīng)過查找發(fā)現(xiàn)Numpy.convolve可以實(shí)現(xiàn)我們想要的功能。

3.Numpy.convolve介紹

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

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

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

4.算法實(shí)現(xiàn)

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

原理說明

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

邊緣處理

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

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

總結(jié)

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

相關(guān)文章

  • Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)

    Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)

    本文主要介紹了Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn),CUDA流是在GPU上并行執(zhí)行操作的一種機(jī)制,通過使用CUDA流,可以將不同的操作分配給不同的流,在不同的流上并行執(zhí)行這些操作,從而提高代碼的性能
    2023-12-12
  • python中前綴運(yùn)算符 *和 **的用法示例詳解

    python中前綴運(yùn)算符 *和 **的用法示例詳解

    這篇文章主要介紹了python中前綴運(yùn)算符 *和 **的用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-05-05
  • python3 簡單實(shí)現(xiàn)組合設(shè)計(jì)模式

    python3 簡單實(shí)現(xiàn)組合設(shè)計(jì)模式

    這篇文章主要介紹了python3 簡單實(shí)現(xiàn)組合設(shè)計(jì)模式的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python中l(wèi)ist循環(huán)遍歷刪除數(shù)據(jù)的正確方法

    Python中l(wèi)ist循環(huán)遍歷刪除數(shù)據(jù)的正確方法

    這篇文章主要給大家介紹了關(guān)于Python中l(wèi)ist循環(huán)遍歷刪除數(shù)據(jù)的正確方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測試與理解

    基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測試與理解

    這篇文章主要介紹了基于python 將列表作為參數(shù)傳入函數(shù)時(shí)的測試與理解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python中asyncore的用法實(shí)例

    Python中asyncore的用法實(shí)例

    這篇文章主要介紹了Python中asyncore的用法,asyncore提供了方便的網(wǎng)絡(luò)操作方法,本文以連接并解析www.python.org主頁為例加以說明,需要的朋友可以參考下
    2014-09-09
  • python讀取大型csv文件的操作方法(降低內(nèi)存占用)

    python讀取大型csv文件的操作方法(降低內(nèi)存占用)

    遇到大型的csv文件時(shí),pandas會(huì)把該文件全部加載進(jìn)內(nèi)存,從而導(dǎo)致程序運(yùn)行速度變慢,本文提供了批量讀取csv文件、讀取屬性列的方法,減輕內(nèi)存占用情況,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-03-03
  • 淺析Python3 pip換源問題

    淺析Python3 pip換源問題

    這篇文章主要介紹了Python3 pip換源問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python運(yùn)行shell命令subprocess的實(shí)現(xiàn)

    python運(yùn)行shell命令subprocess的實(shí)現(xiàn)

    本文主要介紹了python運(yùn)行shell命令subprocess的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 使用Python實(shí)現(xiàn)跳幀截取視頻幀

    使用Python實(shí)現(xiàn)跳幀截取視頻幀

    這篇文章主要介紹了使用Python實(shí)現(xiàn)跳幀截取視頻幀,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評論

南部县| 策勒县| 黑水县| 永济市| 永胜县| 马公市| 汶上县| 景德镇市| 玉树县| 平果县| 泌阳县| 嘉善县| 鄂托克旗| 钟祥市| 呼伦贝尔市| 微博| 萨嘎县| 阿克陶县| 德令哈市| 黄石市| 阿坝| 高要市| 花垣县| 常山县| 西藏| 潞西市| 加查县| 永城市| 元阳县| 博湖县| 灵山县| 柏乡县| 无为县| 大新县| 天水市| 防城港市| 巴林左旗| 桑植县| 临沧市| 札达县| 石林|