You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用np.cumprod向量化实现Python的getnpx2循环计算函数

getnpx2 向量化实现方案

最终代码

和你之前getnpx_的实现风格对齐的向量化写法如下:

def getnpx2_(mt, age, interest):
    return 1 + (np.cumprod(mt[age+1:7]) / (1 + interest)**np.arange(1, 7 - age)).sum()

结果验证

使用你提供的测试参数运行:

# 原函数运行结果
print(getnpx2(mt, age, interest))
# 向量化版本运行结果
print(getnpx2_(mt, age, interest))

两次输出均为79.88888888888889,和原函数逻辑完全一致。

逻辑推导

  1. 原函数中val初始值为mt[age],每次迭代乘mt[i-1]后还要除以mt[age],两者可直接抵消,因此分子等价于对mt[age+1:7]做累积乘积
  2. 分母的指数对应迭代次数,从1开始递增,长度和mt[age+1:7]的长度一致,用np.arange(1,7-age)即可生成对应序列

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:54:03