python中的r的rep()功能

时间:2018-10-02 13:22:17

标签: python

我对python来说还比较陌生,但仍然在研究内容。我想检查python中是否有等效的 r's rep 命令来复制整个向量而不是每个元素。我使用了numpy.repeat,但是它只重复给定的每个元素一次,有没有办法调整它以重复整个向量?

示例:

y=np.repeat(np.arange(0,2),3)
print(y)
array([0, 0, 0, 1, 1, 1])

使用r的代表的预期输出

 a<-c(0,1)
 rep(a,3)
 0 1 0 1 0 1

3 个答案:

答案 0 :(得分:2)

无论如何我都不是R方面的专家,但据我所知,这就是您想要的:

>>> np.tile([0, 1], 3)
array([0, 1, 0, 1, 0, 1])

答案 1 :(得分:1)

您的预期输出不在python中(即使那是您想要的),但是如果我尝试对其进行翻译,那么您基本上希望转换的内容可以说[0,1,2][0,1,2,0,1,2,0,1,2 ...]并重复任意次数

在python中,您可以简单地将一个列表与一个数字相乘就可以得到:

lst = [0,1]
lst2  = lst*3
print(lst2)

这将打印[0, 1, 0, 1, 0, 1]

答案 2 :(得分:1)

直接从文档开始。 np.repeat只需重复迭代中存在的元素,直到参数中指定的次数即可。

除了已发布的内容外,还使用了repeatchain的itertools

from itertools import repeat, chain
list(chain(*(repeat((1,2),3)))) # [1, 2, 1, 2, 1, 2]