基于python的numpy.random库,random, randing,shuffle生成随机数

最近在看代码的过程中接触到不少numpy子模块random中的函数,为了方便以后查阅,特此记录下。

 目前接触random模块中的函数也不多,但几个常用的都会介绍下!

如下四个函数可以作为一组:

numpy.random.random(size=None),             

numpy.random.random_sample(size=None),

numpy.random.sample(size=None),

numpy.random.rand(d0,d1,d2,...)

功能:采样自服从[0.0,1.0)均匀分布的随机数;当参数取默认值时,生成单个浮点数,如何指定了size值,则生成数组,例如numpy.random.random((n,m,k)),则生成的数组为n*m*k。

numpy.random.randn(d0,d1,d2,...)

功能:采样自服从标准正态分布的随机数;当参数部位空时,随机生成一个浮点数,当有参数时,返回一个数组。

numpy.random.randint(low,high=None,size=None,dtype=None)

功能:采样自服从离散均匀分布的随机整数;当size取默认值时,生成单个整数值,当给定了size时,生成一个数组; 当没有指定high时,取值范围为[0,low),当给定了high时,元素取值范围为[low,high)。

与上一个函数相对应的函数是numpy.random.random_integers(low,high=None,size=None)

不同之处在于当给定high时,取值范围为[low,high],当high取默认值时,取值范围为[1,low]

两个常用的打乱函数:  numpy.random.shuffle(x) numpy.random.permutation(x)

相似点:当x是一个序列时,随机进行打乱;当x是一个数组时,只打乱第一维;

不同点:numpy.random.shuffle(x)输出为None,且会改变原始数据序列;而对于numpy.random.permutation(x)函数,会先将x拷贝一份,然后在进行打乱,返回打乱后的序列或矩阵,原参数中元素顺序保持不变;并且参数x可以为一个整数,这时会先生成一个序列(numpy.arange(x)),然后在进行打乱.

numpy.random.choice(a, size = None, replace = True, p = None): a为一维数组或整数,当为整数时,从range(a)中抽样,当size=(n1,n2,...)时,返回一个长度为(n1*n2....)的一维数组;当size = None时,返回单个值;replace 指定是否为放回抽样,默认为True,即可放回,参数p与参数a相对应,表示每个数据被抽中的概率,默认为等概率抽样。

numpy.random.uniform(low=0.0, high=1.0, size=None): 均匀抽样,数据的范围时[low, high),返回一个数组或标量。

numpy.random.seed():用来设置随机种子,可以让生成的随机数具有可预测性。一般不需要显示调用,但如果想让每次生产的随机数一样,则每次生产随机数前必须传入数据类型为int64的相同值。


for _ in range(10):
    print(random.randint(1,10),end = '  ')

print()

for _ in range(10):
    random.seed(5)
    print(random.randint(1,10),end = '  ')

输出如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值