[学习笔记]numpy.random

numpy库中,随机取样模块random的大量功能经常被用到,本文记录最常用到的部分函数及功能。

1.常用函数

1.1随机数据生成

函数用法
rand()rand(d0, d1, …, dn)
randn()rand(d0, d1, …, dn)
uniform(x,y)np.random.uniform(5,10)
Randn(d0,…dn)3*np.random.randn(5,4)+2
Randint(low,high,[size])Np.random.randint(3,size=(2,4))
Random_sample([size])Np.random.random_sample((5,))
choice(a,[size],replace,p)np.random.choice([‘a’,‘b’,‘c’,‘d’],size=[3,3])

1.1.1 rand()

rand(d0, d1, ..., dn)

随机生成 [0, 1) 之间的数字。无参数时返回一个数字。

import numpy as np
a=np.random.rand()
b=np.random.rand(3,2)
print(a)
print(b)

输出结果:
0.2971520835020539
[[0.90599181 0.20214398]
[0.22889111 0.09222375]
[0.64262873 0.31477416]]

1.1.2 randn()

randn(d0, d1, ..., dn)

从均值为0,方差为1的高斯分布中随机采样浮点型数据返回。

import numpy as np
#生成 N(3, 4) 分布的随机数据[4, 3]
print(2*np.random.randn(4,3)+3)

输出结果:
[[ 3.21451812 -0.09456433 0.20974838]
[ 3.77299104 1.13216474 3.00898093]
[ 2.74142993 2.57746403 5.48446566]
[ 3.88009678 3.49210969 1.18051403]]

1.1.3 randint()

randint(low, high=None, size=None, dtype='l')

随机生成size维度个 [low, high) 之间的整数

import numpy as np
print(np.random.randint(1,100,(5,5)))

输出结果:
[[71 69 74 6 69]
[74 75 50 43 91]
[20 40 30 14 4]
[30 24 65 47 76]
[75 3 42 55 35]]

1.1.4 uniform()

 uniform(low=0.0, high=1.0, size=None)

随机生成size维度个 [low, high) 之间的float数

import numpy as np
print(np.random.uniform([1,3,5,7],[2,4,6,8]))

输出结果:
[1.04811865 3.90003467 5.25567536 7.37078057]

1.1.5 choice()

choice(a, size=None, replace=True, p=None)

使用a中的元素生成一个size维度的数据。
参数:
replace:是否允许放回取样
p:a中各元素出现的概率

import numpy as np
a=['A','B','C','D']
p=[0.35,0.30,0.20,0.15]
print(np.random.choice(a,[5,5],p))

输出结果:
[[‘B’ ‘A’ ‘C’ ‘B’ ‘D’]
[‘D’ ‘A’ ‘B’ ‘B’ ‘A’]
[‘B’ ‘A’ ‘A’ ‘C’ ‘B’]
[‘D’ ‘D’ ‘C’ ‘B’ ‘C’]
[‘B’ ‘A’ ‘C’ ‘A’ ‘D’]]

1.2常用分布函数

binomial(n, p[, size])
chisquare(df[, size])
exponential([scale, size])
geometric(p[, size])
normal([loc, scale, size])
poisson([lam, size])
rayleigh([scale, size])

1.2.1 正态分布normal()

normal(loc=0.0, scale=1.0, size=None)

生成size个服从N(loc,scale^2)分布的数据

import numpy as np
import matplotlib.pyplot as plt
#生成1000个服从N(3,6.25)分布的点,并绘制散点图
x=np.random.normal(3,2.5,1000)
y=np.random.normal(3,2.5,1000)
plt.scatter(x,y)

输出结果:
在这里插入图片描述

1.2.2 泊松分布possion()

poisson(lam=1.0, size=None)

生成size个服从P(lam)分布的数据

import numpy as np
import matplotlib.pyplot as plt
s = np.random.poisson(5, 10000)
#绘制P(5)的概率密度函数
count, bins, ignored = plt.hist(s, 14, density=True)
plt.show()

输出结果:
在这里插入图片描述

1.3常用排列

函数用法
shuffle(x)np.random.shuffle(array)
permutation(x)np.random.permutation([1,4,9,11,15])

1.3.1 shuffle()

import numpy as np
a=np.arange(0,10)
print(a)
np.random.shuffle(a)
print(a)

输出结果:
[0 1 2 3 4 5 6 7 8 9]
[3 0 5 8 2 1 9 7 6 4]

1.4伪随机函数

函数用法
seed([seed])np.random.seed(5)

2.函数使用练习

import numpy as np
#rand(r0,r1,...rn) - 生成一个n维元素容器,值域(0,1)
a1=np.random.rand(3,2,3)
print("a1=",a1)

#uniform(min,max) - 生成一个(min,max)内的随机数,默认类型float
a2=np.random.uniform(5,10)
print("a2=",a2)

#randn(d0,d1...dn) - 从标准正态分布中返回n维样本值
a3=6.25*np.random.randn(8)+2
print("a3=",a3)

#randint(low=0,high,size) - 返回一个随机size维整数容器,值域[low,high)
a4=np.random.randint(5,size=(4,4))
print("a4=",a4)

#choice(a,size,replace=True,p) - 生成一个由值域a填充的size维数组容器,replace为是否放回取样,p为a中个数据取样概率
exp=('A','B','C','D')
a5=np.random.choice(exp,size=(4,4),replace=True,p=(0.1,0.2,0.3,0.4))
print("a5=",a5)

#shuffle(x) - 打乱容器x中元素排序
np.random.shuffle(a5)
print("a5=",a5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值