0|引言
在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面进行汇总并一一实例学习。
本篇主要总结简单的随机数据库的生产,主要常用的函数有np.random.rand()、.randint()、.randn()、.random()等.
1.np.random.rand(d0, d1, …, dn)
- 根据给定维度生成[0,1)之间的数据,包含0,不包含1
- dn表格每个维度
- 返回值为指定维度的array
生成3行2列的随机数组
#生成3行2列的随机数组import numpy.random as rndrnd.rand(3,2) #生成3行2列的随机数组
生成3维的随机数组
#生成3维的随机数组import numpy.random as rndrnd.rand(3,2,2)
2.randn(d0, d1, …, dn)返回一个样本,具有标准正态分布
- randn函数返回一个或一组样本,具有标准正态分布。
- dn表格每个维度
- 返回值为指定维度的array
import numpy.random as rndrnd.randn(3,2)
import numpy.random as rndrnd.randn(3,2,2)
注:标准正态分布介绍:标准正态分布—-standard normal distribution;标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。
3、randint(low[, high, size])
- 返回随机整数,范围区间为[low,high),包含low,不包含high
- 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
- high没有填写时,默认生成随机数的范围是[0,low)
import numpy.random as rnd#high没有填写时,默认生产随机数的范围为[0,low)rnd.randint(3)
#low为1,high为5,区间为[1,5)rnd.randint(1,5)
#high没有填写时,默认生产随机数的范围为[0,3)rnd.randint(3,size =10)
rnd.randint(3,size =[2,2])
4.np.random.random([size])生成[0,1)之间的浮点数,与np.random.rand()功能类似
import numpy.random as rnda = rnd.random(size=[2,2])print(a.dtype)print(a)print('---分界线---')b = rnd.rand(2,2)print(b)print(b.dtype)
- numpy.random.random_sample(size=None)
- numpy.random.ranf(size=None)
- numpy.random.sample(size=None)
上述三个函数同样具有类似的功能:
print('-----random_sample-----')print(rnd.random_sample(size=(2,2)))print('-----random-----')print(rnd.random(size=(2,2)))print('-----ranf----')print(rnd.ranf(size=(2,2)))print('------sample-----')print(rnd.sample(size=(2,2)))
5、numpy.random.choice(a[, size, replace, p])生成一个随机样本,从一个给定的一维数组
- 从给定的一维数组中生成随机数;
- 参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率;
- a为整数时,对应的一维数组为np.arange(a);
#a为整数时,对应的一维数组是np.arange(a)#第一个参数值5对应的a,即传入的数据组#第二个参数3就是数组的size,传入单值时,数据维度是一维的#此处将生成一个一维数据包含3个小于5的整数的数组rnd.choice(5,3)
6、numpy.random.seed()生成随机数的种子,使得每次生成随机数相同
- np.random.seed()的作用:使得随机数据可预测。
- 当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数