1.
纯python
In [247]: import random .....: 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) .....: In [249]: plt.plot(walk[:100]) In [250]: plt.show()
2.
numpy实现
nsteps=1000 draws=np.random.randint(0,2,size=nsteps) steps=np.where(draws>0,1,-1) walk=steps.cumsum() plt.plot(walk) plt.show()
3.
np.random.randint(low, high=None, size=None, dtype=‘l‘)
参数如下: low: int 生成的数值最低要大于等于low。 (hign = None时,生成的数值要在[0, low)区间内) high: int (可选) 如果使用这个值,则生成的数值在[low, high)区间。 size: int or tuple of ints(可选) 输出随机数的尺寸,比如size = (m * n* k)则输出同规模即m * n* k个随机数。默认是None的,仅仅返回满足要求的单一随机数。 dtype: dtype(可选): 想要输出的格式。如int64、int等等 ———————————————— 版权声明:本文为CSDN博主「安ann」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u011851421/article/details/83544853
4.加时间限制,比如:要几步穿越10
?次穿越时间,即随机漫步 过程中第?次到达某个特定值的时间。假设我们想要知道本次随 机漫步需要多久才能距离初始0点?少10步远(任??向均 可)。np.abs(walk)>=10可以得到?个布尔型数组,它表示的是 距离是否达到或超过10,?我们想要知道的是第?个10或-10 的索引。可以?argmax来解决这个问题,它返回的是该布尔型 数组第?个最?值的索引(True就是最?值): In [257]: (np.abs(walk) >= 10).argmax() Out[257]: 37
原文:https://www.cnblogs.com/lianghaiming/p/12529992.html