重复序列中的值,最多n个

时间:2019-01-01 21:20:06

标签: python list numpy

说我想重复一系列连续的01,直到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 个答案:

答案 0 :(得分:1)

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(函数或方法),但是在这种情况下,函数版本的填充模式可以满足您的需求。