代码之家  ›  专栏  ›  技术社区  ›  Jeff Saremi

反射/镜像填充是如何工作的?在纽比还是一般?

  •  1
  • Jeff Saremi  · 技术社区  · 6 年前

    我在对一个向量运行下面的代码,比如[1,2,3]。前两个我可以解释。每个附加的填充坐标围绕最后一个元素(3)镜像。但是之后我不能。

    这里肯定有一个4的循环,这意味着 mod of 2*(len(a) -1) .

    如果有人把它弄坏了我会很感激的。这个例子是为了结束反射。如果开始的思考有什么不同的话,我也想听听:

    >>> a
    array([1., 2., 3.])
    >>> np.pad(a, ((0,1)), 'reflect')
    array([1., 2., 3., 2.])
    >>> np.pad(a, ((0,2)), 'reflect')
    array([1., 2., 3., 2., 1.])
    >>> np.pad(a, ((0,3)), 'reflect')
    array([1., 2., 3., 2., 1., 2.])
    >>> np.pad(a, ((0,4)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3.])
    >>> np.pad(a, ((0,5)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3., 2.])
    >>> np.pad(a, ((0,6)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3., 2., 1.])
    >>> np.pad(a, ((0,7)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3., 2., 1., 2.])
    >>> np.pad(a, ((0,8)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3., 2., 1., 2., 3.])
    >>> np.pad(a, ((0,9)), 'reflect')
    array([1., 2., 3., 2., 1., 2., 3., 2., 1., 2., 3., 2.])
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   jakevdp    6 年前

    想象一下跨过原始数组,每次碰到一个边界,你就会朝另一个方向走。

    当您向右转并到达终点时,您将反映并开始迭代返回到起点。当您向左前进并到达起点时,您将反映并开始迭代返回终点。

    它可能有助于以这种方式将序列可视化,作为一系列反射:

    [1, 2, 3]
    
     1
        2
           3
        2
     1
        2
           3
        2
     1
        2
           3
        2
     1