gpt4 book ai didi

python - 计算数组特定区域总和的最快方法

转载 作者:太空狗 更新时间:2023-10-30 00:22:42 25 4
gpt4 key购买 nike

给定以下数据(在 python 2.7 中):

import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,14])
b = np.array([8,2,3])

我想得到 a 中前 8 个元素的总和,然后是第 9 和 10 个元素的总和,最后是最后 3 个元素(b< 中的基本信息)。期望的输出是:

[36, 19, 37]

我可以用 for 循环等来做到这一点,但必须有更 pythonic 的方式和更有效的方式来做!

最佳答案

使用 np.split 很容易:

result = [part.sum() for part in np.split(a, np.cumsum(b))[:-1]]
print(result)
>>> [36, 19, 37]

关于python - 计算数组特定区域总和的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45481517/

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