使用跨步實現高效移動平均濾波器
在之前的討論中,探討了使用跨步實現計算高效的移動平均濾波器的好處。在這裡,我們進一步深入研究這個主題並提供詳細的實現。
使用步幅進行高效移動平均過濾
要使用步幅有效計算移動平均過濾器,您可以利用numpy.lib.stride_tricks 中的as_strided()函數。此函數可讓您建立模仿指定維度的移動視窗的陣列視圖。
考慮以下程式碼:
<code class="python">filtsize = 3 a = numpy.arange(100).reshape((10,10)) b = numpy.lib.stride_tricks.as_strided(a, shape=(a.size,filtsize), strides=(a.itemsize, a.itemsize))</code>
這裡,as_strided() 函數建立一個視圖將陣列視為一系列重疊窗口,每個視窗的形狀為(100 - filtsize 1, filtsize )。
捲動視窗
移動視窗,您可以使用numpy.roll() 函數:
<code class="python">for i in range(0, filtsize-1): if i > 0: b += numpy.roll(b, -(pow(filtsize,2)+1)*i, 0)</code>
這會迭代地將視窗移到filtsize列,有效模擬視窗在原始數組上的移動。
計算平均值
要計算平均值,您可以簡單地將每行中的值相加,然後除以過濾器中的元素數量:
<code class="python">filtered = (numpy.sum(b, 1) / pow(filtsize,2)).reshape((a.shape[0],a.shape[1]))</code>
這給你陣列中每個像素的移動平均值。
多維移動平均值
可以使用提供的rolling_window()函數擴展上述方法來處理多維移動平均值by numpy:
<code class="python">def rolling_window(a, window): shape = a.shape[:-1] + (a.shape[-1] - window + 1, window) strides = a.strides + (a.strides[-1],) return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)</code>
此函數可讓您沿著陣列的任意軸建立移動視窗視圖。
記憶體最佳化
很重要需要注意的是,雖然跨步技巧可能很有效,但在處理多維數組時它們也會導致記憶體開銷。 scipy.ndimage.uniform_filter() 函數提供了一種替代方法,可以有效地處理多維移動平均值,並且不會產生與跨步技巧相關的記憶體開銷。
以上是如何使用跨步實現高效的移動平均濾波器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)