numpy np.random生成随机数
1.生成指定形状0-1之间的随机数 :np.random.random()和np.random.rand()
注意:np.random.random()如果要生成多维数据时需要传入一个数组(tuple类型),而np.random.rand()可以直接传入
#生成0-1之间的随机数 import numpy as np np.random.random(100) np.random.rand(100) #区别 np.random.random((3,4)) #需要以数组形式传入 np.random.rand(3,4)
2.生成指定范围内的随机整数np.random.randint(low=,higt=,size=,dtype=)
low和hight代表指定范围内的最大值和最小值
size可以时数组的元素个数也可以是数组的维数,如size=(2,3),即是生成一个2行3列的数据
dtype只能写np.int32或者是np.int64
#如果只传入一个参数,则取该范围内的某一个数据 np.random.randint(10) #不然就得传入三个参数,dtype可以不传入 np.random.randint(0,100,(3,4))
3.与正态分布有关的函数,np.random.randn()和np.random.normal()
区别:np.random.randn() 生成服从标准正态分布,可以传n个参数,代表着维数
np.random.normal(loc,scale,size) 生成指定均值和标准差的正态分布随机数,参数分别代表着均值标准差和随机数的个数,只能生成一维数组,可以配合reshape()使用
np.random.randn(3) #返回三个值 np.random.randn(3,4) np.random.normal(10) #只返回一个值 np.random.normal(2,0.5,10).reshape(2,5)
4.均匀分布 np.random.uniform()
numpy.random.uniform(low,high,size)
从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high
参数介绍:
- low: 采样下界,float类型,默认值为0;
- high: 采样上界,float类型,默认值为1;
- size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致。
np.random.uniform(10) #返回一个值 np.random.uniform(1,10,10) #返回一个一维数组 np.random.uniform(1,10,(2,3)) #返回一个二维数组
5.np.random.seed()按照种子来生成随机数,种子一样,随机数结果一致
#不管执行多少回结果都一样 np.random.seed(10) np.random.rand(10)
6.np.random.shuffle()打乱数组元素顺序
a=np.arange(10) np.random.shuffle(a) #输出的顺序被打乱了
7.np.random.choice()按照指定概率从指定数组中,生成随机数
#进行10000次掷硬币实验 l=[0,0] for i in range(10000): f=np.random.choice([0,1],p=[0.5,0.5]) l[f]=l[f]+1 p=l[0]/(l[0]+l[1])
参数表述0被抽到的概率为0.5;1同理