在Python / NumPy中,如何通过复制元素来填充数组?

时间:2013-09-06 16:16:21

标签: python arrays numpy

例如,如果我有一个数组

[1, 2, 1]

我希望得到一个长度为4倍的新数组

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

我该怎么做?

2 个答案:

答案 0 :(得分:8)

这是numpy.repeat的用途。

>>> x = numpy.array([1, 2, 1])
>>> numpy.repeat(x, 4)
array([1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1])

答案 1 :(得分:2)

这是你想要做的吗?:

def extend(lst, i): 
    return [e for e in lst for r in range(i)]
>>> extend([1,2,1], 4)
[1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1]
>>> extend([1,2,1], 3)
[1, 1, 1, 2, 2, 2, 1, 1, 1]