np的random模块对Python内置random进行补充,增加了一些用于高效生成多种概率分布的样本值的函数
函数 | 作用 |
---|---|
seed | 随机数种子 |
permutation | 序列的随机排序 |
shuffle | 重新排序 |
rand | 即均匀分布的样本值[0,1) |
randint | 给定上下限范围取一个整数 |
randn | 正态分布的样本值 |
binomial | 二项分布的样本值 |
normal | 正态分布的样本值 |
beta | Beta分布的样本值 |
chisquare | 卡方分布的样本值 |
gamma | gamma分布的样本值 |
uniform | 产生在[0,1)中均匀分布的样本值 |
范例 随机漫步
模拟随机漫步: 从0开始,步长为1或-1出现的概率相等.通过村Python的方式实现1000步的随机漫步
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)
walk_hund = walk[:100]
xl = [i for i in range(100)]
plt.plot(xl,walk_hund)
使用np.random模块一次性随机参数1000个"投掷硬币"的结构,硬币的正反分别用1或-1表示
nsteps = 1000
draws = np.random.randint(0,2,size=nsteps)
steps = np.where(draws > 0, 1,-1)
walks = steps.cumsum()
walks
同时进行多个随机漫步模拟
nsteps = 1000
nwalks = 5000
draws = np.random.randint(0,2,size=(nwalks,nsteps))
steps = np.where(draws > 0, 1,-1)
walks = steps.cumsum(1)
walks
网友评论