gpt4 book ai didi

python - 如果 cumsum 大于值,则重新启动 cumsum 并获取索引

转载 作者:太空狗 更新时间:2023-10-30 00:24:44 26 4
gpt4 key购买 nike

假设我有一个距离数组 x=[1,2,1,3,3,2,1,5,1,1]

我想从 x 中获取索引,其中 cumsum 达到 10,在本例中,idx=[4,9]。

所以 cumsum 在满足条件后重新启动。

我可以用循环来完成,但是对于大型数组来说循环很慢,我想知道我是否可以用向量化的方式来完成。

最佳答案

一个有趣的方法

sumlm = np.frompyfunc(lambda a,b:a+b if a < 10 else b,2,1)
newx=sumlm.accumulate(x, dtype=np.object)
newx
array([1, 3, 4, 7, 10, 2, 3, 8, 9, 10], dtype=object)
np.nonzero(newx==10)

(array([4, 9]),)

关于python - 如果 cumsum 大于值,则重新启动 cumsum 并获取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56904390/

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