gpt4 book ai didi

python - Python中类似于R向量化的回收操作

转载 作者:行者123 更新时间:2023-12-01 04:19:20 26 4
gpt4 key购买 nike

我尝试通过翻译 R 代码来了解有关 Python 功能的更多信息,同时注意不同的方法。 R 连接中有一个回收规则,如果字符串是彼此的倍数,则求值器将回收较小的对象以匹配较大的对象的长度。这是一个例子:

lttrs <- c("A", "B", "C")
lbl <- "pct"
users <- c(1,2)

如果我想组合这三个对象以获得“Apct1”“Bpct1”“Cpct1”“Apct2”“Bpct2”“Cpct2”。我可以将最后一个对象 users 重复到第一个对象长度的两倍,然后 R 将计算出其余的:

user_indx <- rep(users, each=length(lttrs))
paste0(lttrs, lbl, user_indx)
#[1] "Apct1" "Bpct1" "Cpct1" "Apct2" "Bpct2" "Cpct2"

我已经能够翻译 rep(users, every=length(lttrs)) 调用:

import numpy as np
lttrs = ['A', 'B', 'C']
lbl = ['pct']
users = [1,2]
print np.repeat(users, len(lttrs))
[1 1 1 2 2 2]

我正在努力从那里继续前进。

最佳答案

听起来你想要的是 itertools.product ,它给出了可迭代的乘积。

from itertools import product
lttrs = ['A', 'B', 'C']
lbl = ['pct']
users = [1,2]
combine = []
for p in product(lttrs, lbl, map(str, users)):
combine.append(''.join(p))

关于python - Python中类似于R向量化的回收操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com