国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解

這篇具有很好參考價值的文章主要介紹了python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 基于Numpy.convolve實現(xiàn)滑動平均濾波

1.1 滑動平均概念

滑動平均濾波法 (又稱:遞推平均濾波法),它把連續(xù)取N個采樣值看成一個隊列 ,隊列的長度固定為N ,每次采樣到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù)(先進先出原則) 。把隊列中的N個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果。

N值的選?。毫髁浚琋=12;壓力:N=4;液面,N=4 ~ 12;溫度,N=1~4

滑動平均的優(yōu)缺點:

優(yōu)點: 對周期性干擾有良好的抑制作用,平滑度高,適用于高頻振蕩的系統(tǒng)。
缺點: 靈敏度低,對偶然出現(xiàn)的脈沖性干擾的抑制作用較差,不易消除由于脈沖干擾所引起的采樣值偏差,不適用于脈沖干擾比較嚴重的場合,比較浪費RAM 。

1.2 滑動平均的數(shù)學原理

滑動平均濾波法計算類似一維卷積的工作原理,滑動平均的N就對應一維卷積核大小(長度)。 區(qū)別在于:

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

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

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

1.3 語法

通過Numpy庫中的convolve()函數(shù)可以實現(xiàn)這些功能。

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

Numpy.convolve函數(shù):(numpy.convolve函數(shù)官方文檔)

參數(shù)說明:

  • a:(N,)輸入的第一個一維數(shù)組
  • v:(M,)輸入的第二個一維數(shù)組
  • mode:{‘full’, ‘valid’, ‘same’}參數(shù)可選,該參數(shù)指定np.convolve函數(shù)如何處理邊緣。
mode可能的三種取值情況:
full’ 默認值,返回每一個卷積值,長度是N+M-1,在卷積的邊緣處,信號不重疊,存在邊際效應。
‘same’ 返回的數(shù)組長度為max(M, N),邊際效應依舊存在。
‘valid’  返回的數(shù)組長度為max(M,N)-min(M,N)+1,此時返回的是完全重疊的點。邊緣的點無效。

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

1.4 滑動平均濾波示例

np.convolve函數(shù)中通過mode參數(shù)指定如何處理邊緣。

下面是一個說明模式不同取值之間差異的圖:

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()

python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解
參考鏈接:
[開發(fā)技巧]·Python極簡實現(xiàn)滑動平均濾波(基于Numpy.convolve)

numpy中的convolve的理解

典型范例:

# 實現(xiàn)數(shù)據(jù)可視化中的數(shù)據(jù)平滑
import numpy as np
import matplotlib.pylab as plt
 
'''
其它的一些知識點:
raise:當程序發(fā)生錯誤,python將自動引發(fā)異常,也可以通過raise顯示的引發(fā)異常
一旦執(zhí)行了raise語句,raise語句后面的語句將不能執(zhí)行
'''
 
def moving_average(interval, windowsize):
    window = np.ones(int(windowsize)) / float(windowsize)
    re = np.convolve(interval, window, 'same')
    return re
 
def LabberRing():
    t = np.linspace(-4, 4, 100)   # np.linspace 等差數(shù)列,-44生成100個數(shù)
    print('t=', t)
 # np.random.randn 標準正態(tài)分布的隨機數(shù),np.random.rand 隨機樣本數(shù)值
    y = np.sin(t) + np.random.randn(len(t)) * 0.1   # 標準正態(tài)分布中返回1個,或者多個樣本值
    print('y=', y)
    
    plt.plot(t, y, 'k')     # plot(橫坐標,縱坐標, 顏色)
    
    y_av = moving_average(y, 10)
    plt.plot(t, y_av, 'b')
    plt.xlabel('Time')
    plt.ylabel('Value')
    # plt.grid()網(wǎng)格線設置
    plt.grid(True)
    plt.show()
    return
 
LabberRing()  # 調(diào)用函數(shù)

python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解

2 曲線平滑處理——Savitzky-Golay 濾波器——詳解

曲線平滑處理——Savitzky-Golay 濾波器——詳解

3 基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解

插值法對折線平滑處理——詳解

基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-493807.html

到了這里,關(guān)于python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 【unity小技巧】使用貝塞爾曲線實現(xiàn)導彈隨機攻擊敵人,也可以用于平滑拾取物品

    參考原視頻鏈接: 【視頻】:https://www.bilibili.com/video/BV1aU4y1v7yM/ 注意 :本文為學習筆記記錄,推薦支持原作者,去看原視頻自己手敲代碼理解更加深入

    2024年02月13日
    瀏覽(25)
  • 應用Numpy實現(xiàn)對數(shù)據(jù)的處理

    創(chuàng)建簡單的數(shù)組 主要使用np.array()函數(shù),語法如下 主要參數(shù): Object:任何具有數(shù)組接口方法的對象 dtype:數(shù)據(jù)類型 ndmin:指定生成數(shù)組的最小維數(shù) 通過np.arange(stat,stop,step,dtype=None)創(chuàng)建數(shù)組 start:起始值,默認為0 stop:終止值,不包含 step:步長 通過np.linspace()生成等差數(shù)列 通過

    2024年02月14日
    瀏覽(40)
  • 曲線平滑算法:三次Hermite曲線生成

    曲線平滑算法:三次Hermite曲線生成

    目錄 ?1.三次Hermite曲線的參數(shù)方程 2. 三次Hermite曲線的繪制 ?????????Hermite曲線是通過給定曲線的兩個端點的位置矢量、以及兩個端點處的切線矢量、來描述曲線的,如圖1所示。這里先對Hermite曲線進行數(shù)學公式推導,然后講述如何繪制Hermite曲線。(這里是算法代碼) 圖

    2024年02月16日
    瀏覽(25)
  • Python兩種讀取txt與csv文件方式(利用numpy處理數(shù)據(jù))

    Python兩種讀取txt與csv文件方式(利用numpy處理數(shù)據(jù))

    一共80個數(shù)據(jù)(只截取前10個數(shù)據(jù)) 在excel中顯示的內(nèi)容 在pycharm中顯示的內(nèi)容 一共80個數(shù)據(jù) 在記事本中顯示的內(nèi)容 在pycharm中顯示的內(nèi)容 1、讀取所有內(nèi)容 data_pd打印結(jié)果 2、數(shù)據(jù)轉(zhuǎn)為numpy data_np打印結(jié)果 1、讀取所有內(nèi)容 data_pd打印結(jié)果 2、數(shù)據(jù)轉(zhuǎn)為numpy data_np打印結(jié)果 1、讀取所

    2023年04月11日
    瀏覽(89)
  • c++計算貝塞爾曲線(折線平滑為曲線)坐標方法

    效果可查看上一篇博文: js手動畫平滑曲線,貝塞爾曲線擬合 【代碼】js手動畫平滑曲線,貝塞爾曲線擬合。 https://blog.csdn.net/qiufeng_xinqing/article/details/131711963?spm=1001.2014.3001.5502 代碼如下:

    2024年02月16日
    瀏覽(25)
  • 基于python開發(fā)實現(xiàn)數(shù)學中各種經(jīng)典曲線的可視化

    基于python開發(fā)實現(xiàn)數(shù)學中各種經(jīng)典曲線的可視化

    今天正好有點時間就想著把之前零星時間里面做的一點小東西整合一下梳理出來,本文的核心目的就是想要基于python來開發(fā)實現(xiàn)各種有趣的數(shù)學曲線的可視化展示。 笛卡爾心形線是一種二維平面曲線,由法國數(shù)學家笛卡爾在17世紀提出。它得名于其形狀類似于傳統(tǒng)的心形符號

    2024年02月10日
    瀏覽(18)
  • Python中數(shù)據(jù)處理(npz、npy、csv文件;元組、列表、numpy數(shù)組的使用)

    目錄 1.npz文件 2.npy文件 3.csv文件 4.列表、元組、numpy矩陣 ①列表 ②元組(不可變列表) ③Numpy數(shù)組 ③Numpy矩陣 1.npz文件 npz是python的壓縮文件 ①讀取文件 ② NpzFile 對象有個屬性 files 可以通過它查看該壓縮文件的所有文件名,通過 dataset[\\\'文件名\\\'] 來獲取文件內(nèi)容 ③保存為.npz文件

    2024年02月03日
    瀏覽(83)
  • [數(shù)據(jù)分析大全]基于Python的數(shù)據(jù)分析大全——Numpy基礎

    [數(shù)據(jù)分析大全]基于Python的數(shù)據(jù)分析大全——Numpy基礎

    NumPy 的全稱為 Numeric Python,它是 Python 的第三方擴展包,主要用來計算、處理一維或多維數(shù)組。 ??步入8月了,7月時因為項目所需,自學了 深度學習 相關(guān)的內(nèi)容,現(xiàn)在 已經(jīng)把項目所需要的神經(jīng)網(wǎng)絡框架搭建起來了,輸入輸出也都歸一化了,模擬誤差也加上了,圖像的參數(shù)

    2024年02月14日
    瀏覽(26)
  • (數(shù)字圖像處理MATLAB+Python)第六章圖像平滑-第一節(jié):圖像平滑概述和空間域平滑濾波

    (數(shù)字圖像處理MATLAB+Python)第六章圖像平滑-第一節(jié):圖像平滑概述和空間域平滑濾波

    圖像平滑(Image Smoothing) :是一種數(shù)字圖像處理技術(shù),用于減少圖像中的 噪聲 和 不規(guī)則性 ,使圖像更加平滑和連續(xù)。在圖像中,噪聲通常表現(xiàn)為不規(guī)則的、突出的像素值,這可能會導致圖像細節(jié)丟失,使其難以進行分析和處理。圖像平滑技術(shù)可以通過對像素值進行濾波來

    2023年04月24日
    瀏覽(103)
  • 【OpenCV實現(xiàn)平滑圖像處理】

    【OpenCV實現(xiàn)平滑圖像處理】

    在圖像處理中,低通濾波器是一種常用的技術(shù),用于平滑、模糊或降低圖像的噪音。這種濾波器通過去除圖像中高頻部分(即變化較快的部分)來實現(xiàn)這些效果。通過應用2D卷積操作,低通濾波器將每個像素的值與其周圍像素的值進行加權(quán)平均,從而實現(xiàn)圖像的平滑處理。 在

    2024年02月08日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包