假设我有两个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]
答案 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])