dec = 0.1
data = np.array([100,200,300,400,500])
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的 for 循环
y = np.zeros(len(data))
for i in range(len(data)):
if i == 0:
y[i] = (1.0 - dec) * data[i]
else:
y[i] = (1.0 - dec) * data[i] + (dec * y[i - 1])
Run Code Online (Sandbox Code Playgroud)
输出 y 是:
array([ 90. , 189. , 288.9 , 388.89 , 488.889])
Run Code Online (Sandbox Code Playgroud)
现在我想在没有循环的情况下进行上述计算,所以如果我打破代码并执行
data[0] = (1.0 - dec) * data[0]
data[1:] = (1.0 - dec) * data[1:] + (dec * data[0])
Run Code Online (Sandbox Code Playgroud)
输出数据为:
array([ 90, 189, 279, 369, 459]) …Run Code Online (Sandbox Code Playgroud)