Numpy基础: 数组和矢量计算(随机数和随机漫步)

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

你可能感兴趣的:(Numpy基础: 数组和矢量计算(随机数和随机漫步))