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

参数介绍:

  1. low: 采样下界,float类型,默认值为0;
  2. high: 采样上界,float类型,默认值为1;
  3. 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同理

 

posted on 2020-07-06 18:54  小小喽啰  阅读(10582)  评论(0编辑  收藏  举报