我有一个数组:
a = np.array([2,3,5,8,3,5])
Run Code Online (Sandbox Code Playgroud)
什么是计算数组的最有效(矢量化)方法,其中每个结果元素是(伪代码):
result[0] = a[0]
for i > 0:
result[i] = result[i-1] + (a[i] - result[i-1]) * factor
Run Code Online (Sandbox Code Playgroud)
我可以使用以下低效代码(因子= 0.5)执行此操作:
a = np.array([2,3,5,8,3,5])
result = np.array([a[0]])
for k in a[1:]:
result = np.append(result, result[-1]+(k-result[-1])*0.5)
Run Code Online (Sandbox Code Playgroud)
这种阻尼功能的结果是:
array([ 2., 2.5, 3.75, 5.875, 4.4375, 4.71875])
Run Code Online (Sandbox Code Playgroud)