Numpy伪随机数生成

numpy.random模块可以高效生成概率分布下的完整样本值数组,下面介绍一些常用的函数。(文中的np就是numpy)

  1. np.random.normal()。官方文档中参数为(loc,scale,size)分别代表mu,sigma,size
    从正态(高斯)分布中抽取样本
import numpy as np
samples = np.random.normal(size=[4,4])
samples

Out:

array([[ 0.87314992,  1.54713961, -0.58538335, -0.4221829 ],
       [ 0.3455818 , -0.52047143, -1.20761581,  1.10418615],
       [ 0.81193923, -0.82984705, -1.59911057,  0.23946598],
       [-0.05999458,  0.56239631, -1.14749275,  1.44962515]])
  1. np.random.randint()
    根据给定的由低到高的范围随机抽取整数
np.random.randint(2,10,[3,4])

Out:

array([[4, 3, 5, 8],
       [5, 7, 2, 9],
       [7, 8, 8, 3]])
  1. np.random.randn()
    从均值0方差1的正态分布中抽取样本
np.random.randn(3,4)

Out:

array([[-1.22574464,  1.12638582,  0.24711172,  0.12117181],
       [ 0.29898394, -0.15709914, -0.74046902, -1.24765292],
       [ 0.24945522,  0.58107332,  2.76384408,  0.39932544]])
  1. np.random.rand()
    从均匀分布中抽取样本
np.random.rand(2,10)

Out:

array([[0.02268048, 0.85505469, 0.3063372 , 0.75878344, 0.56327511,
        0.03816418, 0.56551672, 0.65887349, 0.18326635, 0.79741131],
       [0.61236743, 0.55565338, 0.62949154, 0.68618008, 0.24038254,
        0.78792779, 0.85647746, 0.72779602, 0.69234514, 0.47235094]])
  1. np.random,shuffle()
    随机排列一个序列
arr = np.arange(10)
arr
np.random.shuffle(arr)
arr

Out:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([3, 7, 2, 9, 0, 5, 4, 1, 8, 6])
  1. np.random.seed()
    我们都知道生成的随机数其实是一种伪随机,因为它们是由具有确定性行为的算法根据随机数生成器中的随机数种子生成的,在这里的函数可以用于向随机数生成器传递随机状态种子。想要进一步了解随机数种子的作用和使用,可以参考这篇博文。点击这里,查看博文
np.random.randn(3)
np.random.randn(3)

Out:

array([-0.55015594,  0.6313686 , -0.50048466])
array([ 0.35249899, -0.86802158, -0.6383394 ])
np.random.seed(1234)
np.random.randn(3)
np.random.seed(1234)
np.random.randn(3)

Out:

array([ 0.47143516, -1.19097569,  1.43270697])
array([ 0.47143516, -1.19097569,  1.43270697])
  1. np.random.permutation()
    返回一个序列的随机排列,或者返回一个乱序的整数范围序列
arr = np.arange(10)
arr
np.random.permutation(arr)
arr

Out:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([8, 5, 6, 0, 4, 3, 2, 9, 7, 1])
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
  1. 还有一些其他的函数,可能不太常用
#binomial从二项分布中抽取样本
np.random.binomial(0.1,0.9)
#beta从beta分布中抽取样本
np.random.beta(2,4)
#chisquare从卡方分布中抽取样本
np.random.chisquare(3,5)
#gamma从gamma分布中抽取样本
np.random.gamma(1,7)
#uniform从均匀分布(0,1】中抽取样本
np.random.uniform(2,3)

与Numpy相关的介绍就到这里啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值