gpt4 book ai didi

Python numpy 等效于 R rep 和 rep_len 函数

转载 作者:太空狗 更新时间:2023-10-30 00:38:16 27 4
gpt4 key购买 nike

我想找到与 R reprep_len 函数等效的 python(可能是 numpy)。

问题一:关于rep_len函数,假设我运行,

rep_len(paste('q',1:4,sep=""), length.out = 7)

然后 vector ['q1','q2','q3','q4'] 的元素将被回收以填充 7 个空格,你将得到输出

[1] "q1" "q2" "q3" "q4" "q1" "q2" "q3"

我如何回收列表或一维 numpy 数组的元素以适应预定长度?据我所知,numpy 的重复函数允许您指定一定数量的重复,但不会重复值来填充预定长度。

问题2:关于rep函数,假设我运行,

rep(2000:2004, each = 3, length.out = 14)

那么输出是

[1] 2000 2000 2000 2001 2001 2001 2002 2002 2002 2003 2003 2003 2004 2004

我如何使用 python 实现这一点(回收列表或 numpy 数组的元素以适应预定长度并连续列出每个元素预定次数)?

如果之前有人问过这个问题,我深表歉意;我对堆栈溢出完全陌生,对一般编程也很陌生。

最佳答案

NumPy 实际上确实提供了 rep_len 的等价物。这是numpy.resize :

new_arr = numpy.resize(arr, new_len)

请注意,resize 方法 用零填充而不是重复元素,因此 arr.resize(new_len) 不会执行您的操作想要。

至于rep,我不知道有什么等价物。有 numpy.repeat,但它不允许您限制输出的长度。 (还有 numpy.tile 用于 repeat-the-whole-vector 功能,但同样,没有 length.out 等价物。)您可以对结果进行切片,但它会仍然花费所有时间和内存来生成未截断的数组:

new_arr = numpy.repeat(arr, repetitions)[:new_len]

关于Python numpy 等效于 R rep 和 rep_len 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46166933/

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