代码之家  ›  专栏  ›  技术社区  ›  Pazu

在数组元素之间插入N个零

  •  0
  • Pazu  · 技术社区  · 5 年前

    h_0 = (1/16)*np.array([1,4,6,4,1]) . 插入最简单的方法是什么 N 的每个值之间的零 h_0 (作为功能的一部分)?所以我得到了 N=2 例如

    >>> array([0.0625, 0.    , 0.    , 0.25  , 0.    , 0.    , 0.375 , 0.    ,
           0.    , 0.25  , 0.    , 0.    , 0.0625])
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   akuiper    5 年前

    重塑 h_0 到2D,将其与零叠加,然后展平结果:

    import numpy as np
    
    h_0 = (1/16)*np.array([1,4,6,4,1])
    
    N = 2
    zeros = np.zeros((h_0.shape[0], N))
    
    print(np.hstack((h_0[:,None], zeros)).reshape(-1)[:-N])
    # [0.0625 0. 0. 0.25 0. 0. 0.375 0. 0. 0.25 0. 0. 0.0625]
    

    你可以玩这个 here .

        2
  •  2
  •   Paul Panzer    5 年前

    最简单的可能是切片:

    h_0 = (1/16)*np.array([1,4,6,4,1])
    N = 2
    
    out = np.zeros(h_0.size * (N+1) - N , h_0.dtype)
    out[::N+1] = h_0
    out
    # array([0.0625, 0.    , 0.    , 0.25  , 0.    , 0.    , 0.375 , 0.    ,
    #        0.    , 0.25  , 0.    , 0.    , 0.0625])
    
    推荐文章