'''
Chapter4-6 随机数生成
1.比较python标准random.normalvariate与 np.random.normal(快)
2.随机漫步
3.numpy.random函数列表
Created on 2016年12月19日
@author: Bigboy
Chapter4-6 随机数生成
1.比较python标准random.normalvariate与 np.random.normal(快)
2.随机漫步
3.numpy.random函数列表
Created on 2016年12月19日
@author: Bigboy
'''
实践内容:
#-*- coding:utf-8 -*-
import numpy as np
from random import normalvariate
import datetime as dt
size = 1000000
start = dt.datetime.now()
samples = [normalvariate(0,1) for _ in xrange(size)]
end = dt.datetime.now()
print end - start
start = dt.datetime.now()
samples = [normalvariate(0,1) for _ in xrange(size)]
end = dt.datetime.now()
print end - start
np.random.normal(size=size)
'''
#发现两个方法事件差不多,不知是哪里有问题。
#按书上将差距应该比较大才对
out:
0:00:01.091000
0:00:01.109000
'''
#2--------------------------------------------------------------------------------
#随机漫步
import random
import matplotlib.pyplot as plt
pos = 0
walk = [pos]
steps = 100
for i in xrange(steps):
if random.randint(0,1):
step = 1
else:
step = -1
pos += step
walk.append(pos)
plt.plot(walk,'r-')
plt.show()
#结果见图片
#测试randint的用法
import numpy as np
data = np.random.randint(0,2,size=(10,10))
#randint第一个参数是下限,第二个参数上上限,size传入生成数据的维数
print data
'''
out:
[[1 1 0 1 1 1 1 1 1 0]
[0 1 0 1 1 1 0 1 1 1]
[1 1 1 1 0 1 1 0 0 0]
[1 0 1 0 1 0 0 1 1 1]
[1 0 1 0 1 1 1 0 1 0]
[0 0 1 0 0 0 0 0 1 0]
[1 1 1 1 0 1 1 1 1 0]
[1 0 0 1 1 0 1 1 1 0]
[0 1 1 1 0 1 0 0 1 1]
[1 0 1 0 0 0 0 1 1 1]]
'''
随机漫步的结果:
函数备忘:
end