随机漫步的模拟提供了一个使用数组操作的说明性应用。首先,我们来考虑一个简单的随机漫步,从0开始,步进为1和-1,且两种步进发生的概率相等:
import random
import matplotlib.pyplot as plt
position = 0
walk = [position]
steps = 1000
for i in range(steps):
step = 1 if random.randint(0,1) else -1
position += step
walk.append(position)
plt.plot(walk[:100])
plt.show()
对随机漫步的前100步进行数据可视化:
walk只是对随机步进的累积,并且可以通过一个数组表达式实现。我们可以使用np.random模块一次性抽取1000次投掷硬币的结果,每次投掷的结果为1或-1,然后计算累计值:
nsteps = 1000
draws = np.random.randint(0,2,size = nsteps)
steps = np.where(draws >0,1,-1)
walk = steps.cumsum()