假设我有一个看起来像这样的更新方案:
import numpy as np
N = 1000
dt = 0.01
x = np.zeros(N)
x[0] = 0.5
for i in xrange(1, N):
rand = np.random.normal(loc=0.,scale=1.)
x[i] = x[i-1]*(1 + dt + np.sqrt(dt)*rand)
加速此表单代码的最佳策略是什么,当前数组元素需要先前的数组元素才能进行计算?
我试图把它放到矢量化的形式,但我有点担心如何使用尾随数组元素来更新当前的数组元素。
如果有更好的解决方案不涉及矢量化,我也愿意接受。
答案 0 :(得分:3)
试试这个:
x = np.random.randn(1000)
x += 1
x[0] = 0.5
y = np.cumprod(x)
回答