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

3
例如,如果我有一个数组

[1, 2, 1]

我希望获得一个新的数组,它的长度是原数组的四倍。

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

我该怎么做呢?

2个回答

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])

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]

1
这不是使用numpy。 - user2357112
@Bas?...这个例子是关于数组的。 - askewchan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接