當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python cucim.skimage.util.view_as_windows用法及代碼示例

用法:

cucim.skimage.util.view_as_windows(arr_in, window_shape, step=1)

輸入 n 維數組的滾動窗口視圖。

窗口是輸入數組的重疊視圖,相鄰窗口移動單行或列(或更高維度的索引)。

參數

arr_inndarray

N-d 輸入數組。

window_shape長度為 arr_in.ndim 的整數或元組

定義滾動窗口視圖的基本 n 維正交表(更好地稱為超矩形[1])的形狀。如果給定一個整數,則形狀將是由其值給出的邊長超立方體。

step長度為 arr_in.ndim 的整數或元組

指示應執行提取的步長。如果給定整數,則步長在所有維度上都是一致的。

返回

arr_outndarray

輸入數組的(滾動)窗口視圖。

注意

在內存使用方麵,應該非常小心滾動視圖。實際上,盡管 ‘view’ 與其基本數組具有相同的內存占用,但在計算中使用此 ‘view’ 時出現的實際數組通常比原始數組(大得多),尤其是對於二維數組以上。

例如,讓我們考慮一個大小為 (100, 100, 100) 的 float64 的 3 維數組。該數組大約需要 8*100**3 字節的存儲空間,即 8 MB。如果一個人決定在這個陣列上構建一個帶有 (3, 3, 3) 窗口的滾動視圖,則滾動視圖的假設大小(例如,如果要重塑視圖)將是 8*(100-3+1 )**3*3**3 大約 203 MB!隨著輸入數組的維度變大,縮放變得更糟。

參考

1

https://en.wikipedia.org/wiki/Hyperrectangle

例子

>>> import cupy as cp
>>> from cucim.skimage.util.shape import view_as_windows
>>> A = cp.arange(4*4).reshape(4,4)
>>> A
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> window_shape = (2, 2)
>>> B = view_as_windows(A, window_shape)
>>> B[0, 0]
array([[0, 1],
       [4, 5]])
>>> B[0, 1]
array([[1, 2],
       [5, 6]])
>>> A = cp.arange(10)
>>> A
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> window_shape = (3,)
>>> B = view_as_windows(A, window_shape)
>>> B.shape
(8, 3)
>>> B
array([[0, 1, 2],
       [1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6],
       [5, 6, 7],
       [6, 7, 8],
       [7, 8, 9]])
>>> A = cp.arange(5*4).reshape(5, 4)
>>> A
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19]])
>>> window_shape = (4, 3)
>>> B = view_as_windows(A, window_shape)
>>> B.shape
(2, 2, 4, 3)
>>> B  
array([[[[ 0,  1,  2],
         [ 4,  5,  6],
         [ 8,  9, 10],
         [12, 13, 14]],
        [[ 1,  2,  3],
         [ 5,  6,  7],
         [ 9, 10, 11],
         [13, 14, 15]]],
       [[[ 4,  5,  6],
         [ 8,  9, 10],
         [12, 13, 14],
         [16, 17, 18]],
        [[ 5,  6,  7],
         [ 9, 10, 11],
         [13, 14, 15],
         [17, 18, 19]]]])

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cucim.skimage.util.view_as_windows。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。