python初学者数据分析_利用python 学习数据分析 (学习三)

内容学习自:

Python for Data Analysis, 2nd Edition

就是这本

纯英文学的很累,对不对取决于百度翻译了

前情提要:

各种方法贴:

本节内容,numpy 结尾, 以及pands初入门

一:伪随机函数

samples =np.random.normal(size=(3,3))

print(samples)

samples1 =np.random.seed(1234) #调节随机种子

print(samples1)

>>>>

[[ 0.91041087 0.99724402 -0.0681944 ]

[ 0.48277059 -1.50446272 0.30656754]

[-0.01929894 -0.27835256 -0.68331925]]

None

2>:给上下限的数取整

samplse1 = np.random.randint(1,6) #给上下限的数取整数

print(samplse1)

.>>>.>>>>>

# 随机整数

2

3>:产生正太分布样本

arr1 =np.random.randn(3,3) #产生正态分布的样本值

print(arr1)

>>>>>

[[ 0.55526507 -0.3952732 1.49921319]

[-0.06943318 -0.05375604 -0.26636376]

[-1.48909115 -0.00702559 0.15973251]]

4>:产生均匀分布样本

arr1 =np.random.rand(3,3) #产生均匀分布的样本质

print(arr1)

>>>

[[0.56847387 0.23533505 0.97136229]

[0.0049996 0.60753788 0.20997453]

[0.41777576 0.26264969 0.55777828]]

二:随机漫步

1:单随机漫步(普通方法)

import matplotlib.pylab as plt

import random

postition = 0

walk =[postition]

steps =1000

for i in range(steps):

step = 1 if random.randint(0,1) else -1

postition += step

walk.append(postition)

print(walk)

plt.plot(walk[:100])

plt.show()

>>>>>>

[0, 1, 0, 1, 2, 1, 0, -1, 0, -1, -2, -3, -4, -5, -6, -5, -6, -5, -6, -7, -8, -7, -8, -7, -8, -7, -6, -5, -6, -7, -6, -7, -8, -7, -8, -9, -8, -7, -6, -5, -6, -5, -4, -3, -4, -3, -2, -3, -4, -5, -4, -5, -4, -5, -6, -5, -4, -3, -4, -5, -4, -3, -2, -3, -2, -1, -2, -1, -2, -3, -4, -5, -4, -3, -2, -3, -4, -3, -2, -1, 0, 1, 0, -1, 0, -1, 0, 1, 2, 3, 4, 5, 4, 3, 2, 3, 2, 1, 2, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 3, 4, 5, 6, 5, 4, 5, 4, 5, 6, 5, 6, 5, 4, 3, 2, 1, 2, 1, 0, 1, 0, -1, 0, 1, 0, -1, -2, -1, -2, -1, 0, 1, 2, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 5, 6, 7, 6, 7, 6, 7, 8, 9, 10, 9, 8, 9, 8, 9, 10, 11, 10, 11, 12, 11, 10, 9, 10, 9, 8, 7, 8, 7, 6, 5, 4, 5, 4, 3, 2, 1, 0, 1, 0, 1, 2, 1, 0, -1, 0, -1, -2, -3, -2, -1, 0, 1, 0, 1, 0, -1, 0, 1, 0, -1, -2, -3, -2, -3, -2, -3, -4, -3, -2, -3, -4, -3, -2, -3, -4, -3, -4, -3, -2, -3, -4, -3, -4, -5, -6, -7, -6, -7, -8, -9, -10, -9, -8, -7, -8, -9, -10, -11, -12, -13, -14, -15, -14, -15, -14, -15, -14, -13, -12, -13, -14, -13, -14, -15, -16, -17, -18, -17, -18, -19, -18, -19, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -12, -13, -12, -13, -12, -11, -10, -9, -8, -9, -8, -7, -8, -9, -10, -9, -10, -11, -12, -13, -12, -13, -14, -13, -12, -13, -14, -15, -14, -13, -12, -11, -12, -13, -12, -13, -12, -13, -14, -13, -14, -15, -14, -15, -16, -17, -16, -15, -16, -15, -16, -15, -16, -17, -18, -17, -18, -19, -18, -17, -16, -15, -14, -15, -14, -15, -16, -17, -18, -19, -20, -21, -20, -21, -20, -19, -20, -19, -18, -19, -18, -17, -16, -17, -16, -15, -16, -15, -14, -15, -14, -15, -14, -15, -16, -15, -14, -15, -16, -17, -16, -15, -16, -15, -16, -17, -16, -15, -14, -13, -14, -15, -14, -13, -14, -15, -16, -17, -16, -15, -14, -13, -12, -13, -14, -15, -14, -15, -14, -13, -12, -11, -12, -11, -12, -13, -14, -13, -12, -13, -12, -13, -14, -13, -14, -15, -14, -15, -14, -13, -12, -13, -14, -15, -14, -15, -16, -15, -16, -17, -18, -17, -18, -17, -18, -17, -18, -17, -18, -19, -18, -19, -18, -17, -18, -19, -20, -19, -18, -19, -18, -17, -16, -15, -14, -15, -16, -15, -14, -15, -16, -15, -16, -15, -14, -13, -12, -11, -12, -11, -10, -11, -12, -13, -14, -13, -12, -11, -10, -11, -10, -11, -12, -13, -14, -15, -14, -15, -14, -15, -16, -17, -16, -17, -18, -17, -18, -17, -16, -15, -14, -15, -14, -15, -16, -15, -14, -15, -16, -17, -18, -19, -20, -21, -20, -19, -18, -19, -18, -17, -18, -19, -18, -19, -18, -19, -20, -19, -18, -19, -20, -19, -20, -19, -18, -19, -20, -21, -22, -21, -22, -23, -22, -21, -20, -21, -20, -21, -22, -21, -20, -19, -18, -19, -18, -19, -18, -17, -18, -19, -20, -21, -20, -21, -22, -23, -24, -23, -22, -21, -20, -19, -20, -19, -18, -17, -18, -17, -18, -19, -20, -21, -20, -19, -18, -19, -20, -21, -22, -23, -22, -23, -22, -21, -20, -21, -22, -23, -24, -25, -24, -25, -24, -25, -24, -25, -26, -25, -24, -25, -26, -25, -26, -27, -28, -29, -30, -29, -30, -31, -32, -33, -34, -33, -32, -33, -34, -33, -34, -33, -32, -31, -30, -29, -30, -31, -30, -31, -30, -29, -28, -27, -26, -27, -28, -27, -26, -25, -24, -25, -26, -25, -24, -25, -24, -23, -22, -23, -22, -21, -20, -21, -20, -21, -20, -19, -20, -19, -20, -21, -22, -21, -20, -19, -20, -19, -18, -19, -18, -17, -16, -15, -16, -17, -18, -19, -20, -21, -22, -23, -22, -23, -24, -25, -26, -27, -28, -29, -28, -27, -28, -27, -26, -25, -24, -25, -26, -27, -26, -27, -26, -25, -24, -23, -24, -25, -24, -25, -26, -25, -26, -27, -28, -27, -26, -27, -26, -25, -24, -25, -26, -25, -26, -27, -28, -27, -28, -27, -26, -27, -26, -27, -26, -25, -24, -25, -24, -23, -22, -21, -20, -21, -20, -21, -22, -21, -20, -21, -20, -19, -20, -21, -20, -19, -20, -21, -22, -23, -24, -23, -22, -21, -22, -23, -24, -25, -26, -25, -24, -23, -24, -23, -22, -23, -22, -23, -22, -21, -20, -21, -22, -23, -24, -23, -22, -21, -22, -21, -22, -21, -20, -19, -20, -19, -20, -21, -22, -21, -20, -19, -18, -19, -18, -17, -18, -19, -20, -19, -20, -21, -20, -19, -20, -19, -18, -19, -20, -19, -20, -19, -18, -19, -18, -17, -18, -17, -18, -19, -18, -17, -16, -15, -16, -15, -16, -15, -14, -15, -16, -17, -18, -19, -20, -19, -18, -17, -16, -17, -18, -19, -20, -21, -20, -19, -20, -21, -20, -21, -20, -21, -22, -21, -20, -19, -20, -21, -20, -19, -20, -21, -22, -21, -22, -23, -24, -23, -24, -23, -24, -23, -24, -25, -26, -27, -28, -27, -28, -29, -30, -29, -28, -27, -26, -27, -26, -27, -28, -29, -28, -27, -26, -27, -28, -29, -30, -29, -30, -31, -32, -31, -32, -31, -30, -29, -30, -31, -30, -29, -28, -29, -30, -29, -28, -27, -28, -27, -26, -25, -26, -25, -26, -25, -24, -25, -26, -27, -26, -27, -26, -25, -24, -25, -26, -25, -24, -25, -24, -23, -22, -23, -24]

2:利用numpy随机漫步

1>:生产1个0 或者1 的1维矩阵,1000次

nsteps =1000

draws =np.random.randint(0,2,size=nsteps) #生成一个0 或者1 的1位矩阵,1000次

print(draws)

>>>>

[1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0.............. 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1

1]

2>:进行三元运算累加

nsteps =1000

draws =np.random.randint(0,2,size=nsteps) #生成一个0 或者1 的1位矩阵,1000次

# print(draws)

steps =np.where(draws>0 ,1,-1) #三元运算

walk =steps.cumsum() #累加

print(walk)

plt.plot(walk)

plt.show()

>>>>>>>>>>

[ 1 0 -1 0 -1 0 -1 0 1 0 1 2 3 4 3 4 5 6

5 6 5 4 5 6 7 6 7 8 9 10 11 10 11 12 11 10

11 12 11 12 11 12 13 14 13 12 13 14 15 16 15 16 17 18

17 18 17 18 19 18 17 16 15 14 15 16 17 16 15 14 13 12

11 10 9 10 9 10 9 10 9 10 9 10 11 10 11 12 11 10

9 10 11 12 11 10 9 10 11 10 9 8 9 8 9 8 9 8

.......

2.1>最大值  ,最小值

l1 =walk.min() # 最小值

print(l1)

l2 =walk.max() #最大值

print(l2)

>>>>>>

-51

12

2.2>求距离0 到(+,-)10  距离最近的索引

l =(np.abs(walk)>=10).argmax() #求距离0 位置10个距离的索引

print(l)

\>>>>>>>>>>>>>>

35

3:模拟多次随机漫步

nwalks =5000 #组数

nsteps =1000 #步数

draws =np.random.randint(0,2,size=(nwalks,nsteps)) #生成1,0 内的随机5000个漫步值

print(draws)

steps=np.where(draws>0 ,1,-1)

walks=steps.cumsum(1)print(walks)>>>>[[1 1 1 ... 1 0 1]

[0 0 0 ... 01 1]

[1 0 0 ... 0 10]

...

[0 0 0 ...10 0]

[1 1 0 ... 0 1 1]

[1 0 1 ... 0 0 1]]

[[1 2 3 ... 54 53 54]

[-1 -2 -3 ... -50 -49 -48]

[1 0 -1 ... -34 -33 -34]

...

[-1 -2 -3 ... -64 -65 -66]

[1 2 1 ... -8 -7 -6]

[1 0 1 ... -8 -9 -8]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值