随机漫步范例-----python

简单随机漫步

通过随机漫步范例说明如何运用数组运算,下面是一个简单的例子,从位置0开始,步长-方向为1且出现概率相等。

>>> import random
>>> position = 0
>>> walk = [position]
>>> steps = 1000
>>> for i in xrange(steps):
...     step = 1 if random.randint(0,1) else -1
...     position += step
...     walk.append(position)
from pandas import DataFrame
frame = DataFrame(walk)
frame.plot()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000010A079E8>


 随机漫步折线图

使用numpy函数,统计穿越固定值所需次数

>>> import numpy as np
>>> nsteps = 1000
>>> draws = np.random.randint(0,2,size = nsteps)
>>> steps = np.where(draws > 0,1,-1)
>>> walk = steps.cumsum()
walk.min()
-34
walk.max()
11
>>> (np.abs(walk)>=10).argmax()
131

一次模拟多个随机漫步

>>> import numpy as np
>>> from pandas import DataFrame
Backend TkAgg is interactive backend. Turning interactive mode on.
>>> nwalkers = 3
>>> nsteps = 10000
>>> draws = np.random.randint(0,2,size = (nwalkers,nsteps))
>>> steps = np.where(draws>0,1,-1)
>>> walks = steps.cumsum(1)
>>> frame = DataFrame(walks)
>>> frame.T.plot()
<matplotlib.axes._subplots.AxesSubplot object at 0x000000001CFE8C18>

猜你喜欢

转载自blog.csdn.net/Da___Vinci/article/details/82963251