scipy.signal.
order_filter#
- scipy.signal.order_filter(a, domain, rank)[source]#
對 N 維陣列執行 order filter。
對輸入陣列執行 order filter。domain 參數作為遮罩,在每個像素上居中。domain 的非零元素用於選擇每個輸入像素周圍的元素,這些元素被放置在一個列表中。列表經過排序,並且該像素的輸出是排序列表中與 rank 對應的元素。
- 參數:
- andarray
N 維輸入陣列。
- domainarray_like
與 a 具有相同維度的遮罩陣列。每個維度都應該有奇數個元素。
- rankint
一個非負整數,用於從排序列表中選擇元素(0 對應於最小元素,1 是下一個最小元素,依此類推)。
- 回傳值:
- outndarray
order filter 的結果,以與 a 具有相同形狀的陣列形式回傳。
範例
>>> import numpy as np >>> from scipy import signal >>> x = np.arange(25).reshape(5, 5) >>> domain = np.identity(3) >>> x array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]) >>> signal.order_filter(x, domain, 0) array([[ 0, 0, 0, 0, 0], [ 0, 0, 1, 2, 0], [ 0, 5, 6, 7, 0], [ 0, 10, 11, 12, 0], [ 0, 0, 0, 0, 0]]) >>> signal.order_filter(x, domain, 2) array([[ 6, 7, 8, 9, 4], [ 11, 12, 13, 14, 9], [ 16, 17, 18, 19, 14], [ 21, 22, 23, 24, 19], [ 20, 21, 22, 23, 24]])