【发布时间】:2014-01-15 14:04:03
【问题描述】:
假设我有一个使用范围的 for 循环,如下所示。有没有消除 for 循环并只使用 numpy 数组的好方法?
y =[146, 96, 59, 133, 192, 127, 79, 186, 272, 155, 98, 219]
At=3
Bt=2
Aindex=[]
Bindex=[]
for i in range(len(y)-1):
A =At
B =Bt
At =y[i] / y[i] + 5 * (A + B)
Aindex.append(At)
Bt =(At - A) + y[i+1] * B
Bindex.append(Bt)
我会使用类似的东西
c=len(y)-1
Aindex=y[:c]/y[:c]+5* (A + B)
但是 A 和 B 在循环中更新。我也不知道如何在 Bt 方程中向量化 y[i+1]
【问题讨论】:
-
你应该使用 enumerate(y) 而不是 range(len(y)-1)
-
@Leifingson 我知道我刚刚做了这个例子。我实际上会使用 np.arange 对其进行矢量化