Numpy数组 - 根据之前的更改更改下一个元素

时间:2012-10-26 16:51:04

标签: python numpy

假设我有两个numpy数组:

import numpy as np
a = np.ones(5)
b = np.array([1.0, 1.1, 1.05, 1.2, 1.25])

我想要该元素a[1]=a[0]*b[1],我们可以将此a[1]称为new_a,然后a[2]=new_a*b[2]。这可以在不使用numpy循环的情况下完成吗?循环代码如下所示:

for i in range(len(a)-1):
    a[i+1] = a[i]*b[i+1]
print (a)

打印:

[ 1.      1.1     1.155   1.386   1.7325] 

1 个答案:

答案 0 :(得分:4)

这称为“累积产品”。已经有built-in function cumprod了。

>>> numpy.cumprod([1.0, 1.1, 1.05, 1.2, 1.25])
array([ 1.    ,  1.1   ,  1.155 ,  1.386 ,  1.7325])
相关问题