import numpy as np
samples = np.random.normal(size=(4,4)) # 标准正态分布一个4*4的样本数组
samples
#随机漫步
#纯Python的内置模块进行1000步的随机漫步
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)
walk
#会用np.random模块
nsteps = 1000
draws = np.random.randint(0 ,2,size= nsteps)
steps = np.where(draws > 0, 1,-1)
walk = steps.cumsum()
walk.min()
walk.max()
(np.abs(walk)>=10).argmax()
#找出第一个是10或者-10的索引是那个,从而达到查询所花费的时间效果
#一次模拟多个随机漫步
nwalks = 5000
nsteps = 100
draws = np.random.randint(0 ,2,size= (nwalks,nsteps))
steps = np.where(draws > 0, 1,-1)
walks = steps.cumsum(1) #5000个随机漫步的过程对此进行行向的累加
walks.max()
walks.min()
hits30 = (np.abs(walks) >=30).any(1)#找出这五千个当中30或-30最小时间,首先进行查看
hits30.sum()#统计个数
crossing_times = (np.abs(walks[hits30])>=30).argmax(1)
crossing_times.mean()#计算在轴1上的平均穿越时间
利用Python数据分析:Numpy基础(七)
最新推荐文章于 2022-11-19 11:16:14 发布