说我想重复一系列连续的0
和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])
答案 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
(函数或方法),但是在这种情况下,函数版本的填充模式可以满足您的需求。