【发布时间】:2021-10-06 01:58:40
【问题描述】:
我有一个python函数:
pval = np.array([1,1,1,1,1,0.999709, 0.99973,0.999743,0.999706, 0.999675, 0.99965, 0.999629])
age1=4
age2=8
def getnpxtocert(mt, age, age2):
val = mt[age]
for i in range(age + 1,age2):
val = val * mt[i]
return val
getnpxtocertv(pval,age1,age2)
输出是:
0.9991822227268075
然后我尝试使用 cumprod 对其进行矢量化:
def getnpxtocertv(mt, age, age2):
return (mt[age]*np.cumprod(mt[age+1:age2])).sum()
getnpxtocert(pval,age1,age2)
但是输出是:
2.998330301296807
我做错了什么?有朋友可以帮忙吗?
【问题讨论】:
标签: python python-3.x numpy array-broadcasting numpy-ufunc