3

假设我有两个 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]a 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] 
4

1 回答 1

4

这被称为“累积产品”。为此已经有一个内置函数cumprod

>>> numpy.cumprod([1.0, 1.1, 1.05, 1.2, 1.25])
array([ 1.    ,  1.1   ,  1.155 ,  1.386 ,  1.7325])
于 2012-10-26T16:54:17.307 回答