代码之家  ›  专栏  ›  技术社区  ›  yatu Sayali Sonawane

重复从一个序列到n的值

  •  0
  • yatu Sayali Sonawane  · 技术社区  · 6 年前

    假设我想重复一个连续的序列 0 S和 1 达到 n . 我能想到的一种方法是:

    seq = np.array([0,1])
    a = np.tile(seq, math.ceil(n/2))[:n]
    

    我在哪里使用 math.ceil(n/2) 因此,在有奇数的情况下,只生成一个额外的数字 n . 但是有没有一种更简洁的方法来做到这一点呢?理想情况下,这应该可以扩展到任何给定的序列,例如:

    n = 6
    seq = np.array([1,2,3,4])
    np.tile(seq, math.ceil(n/2))[:n]
    array([1, 2, 3, 4, 1, 2])
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   hpaulj    6 年前

    np.resize 可能会为你工作。

    In [43]: seq = np.array([1,2,3,4])
    In [44]: np.resize(seq, 6)
    Out[44]: array([1, 2, 3, 4, 1, 2])
    

    我们不使用 resize (函数或方法)通常如此,但在这种情况下,函数版本的填充模式可以满足您的需要。