当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python skimage.util.view_as_windows用法及代码示例


用法:

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 numpy as np
>>> from skimage.util.shape import view_as_windows
>>> A = np.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 = np.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 = np.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]]]])

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.util.view_as_windows。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。