python之基础numpy库使用(三)

这儿为numpy基础知识的最后一弹,内容主要有线性代数运算与随机数的生成

(一)线性代数运算

线性代数运算使用方式:

import numpy.linalg as alg

(二)随机数生成
在第二篇里面用到了随机数,这儿详细介绍一下

(1)生成一个多维正态分布的随机数组

In[49]: arr=np.random.normal(size=(4,4))
In[50]: arr
Out[50]: 
array([[-0.9292644 ,  0.59667119,  0.67925201,  1.11793723],
[ 0.1951411 , -1.52496088, -1.59018192,  0.26494354],
[-2.49287385, -1.17993629, -1.01977404, -0.79471872],
[-0.47717025,  0.72125487, -1.11406275, -0.9957009 ]])
(2)部分numpy.random函数



 (2)随机漫步

生成一个随机数序列,步长随机为正负1,观察其累计求和的变化,下面为一个随机过程

import random
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']  #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    #用来正常显示正负号

position=0
steps=1000
walk=[position]
for i in range(steps):
    step=1 if random.randint(0,1) else -1
    position+=step
    walk.append(position)
plt.plot(walk)
plt.title('1000个数的随机漫步')
plt.show()
结果如下图:


这个时候就可以对本次随机漫步根据以上的知识做一些统计,例如极值,越过某个点的步长等,不再详述。

补充一点内容,同时实现多随机漫步,代码如下(10次随机过程),前面的代码同单次的,就不贴了

nwalks=10   #随机过程次数为10
nsteps=1000   #随机过程长度为1000
draws=np.random.randint(0,2,size=(nwalks,nsteps))
steps=np.where(draws>0,1,-1)
walks=steps.cumsum(1)
for i in walks:
    plt.plot(i)
plt.title('10次随机漫步')
plt.show()
结果如下图:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值