gpt4 book ai didi

python - 循环中的累积加法

转载 作者:行者123 更新时间:2023-11-28 20:14:10 24 4
gpt4 key购买 nike

我正在尝试将一个值累计添加到先前的值,并且每次都将该值存储在一个数组中。

这段代码只是一个更大项目的一部分。为简单起见,我将按如下方式定义我的变量:

ele_ini = [12]
smb = [2, 5, 7, 8, 9, 10]

val = ele_ini
for i in range(len(smb)):
val += smb[i]
print(val)
elevation_smb.append(val)

问题

每次,存储在 elevation_smb 中的先前值都被当前值替换,这样我获得的结果是:

elevation_smb = [22, 22, 22, 22, 22, 22]

不过我期待的结果是

elevation_smb = [14, 19, 26, 34, 43, 53]

注意:ele_ini 是一个包含 n 个元素的向量。为了简单起见,我只使用了 1 个元素。

最佳答案

不要使用循环,因为很慢。更好的是下面的快速矢量化解决方案。

我认为需要numpy.cumsum并为 2d numpy array 添加向量 ele_ini:

ele_ini = [12, 10, 1, 0]
smb = [2, 5, 7, 8, 9, 10]

elevation_smb = np.cumsum(np.array(smb)) + np.array(ele_ini)[:, None]
print (elevation_smb)
[[14 19 26 34 43 53]
[12 17 24 32 41 51]
[ 3 8 15 23 32 42]
[ 2 7 14 22 31 41]]

关于python - 循环中的累积加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694694/

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