numpy.random模块可以高效生成概率分布下的完整样本值数组,下面介绍一些常用的函数。(文中的np就是numpy)
- 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]])
- np.random.randint()
根据给定的由低到高的范围随机抽取整数
np.random.randint(2,10,[3,4])
Out:
array([[4, 3, 5, 8],
[5, 7, 2, 9],
[7, 8, 8, 3]])
- 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]])
- 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]])
- 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])
- 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])
- 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])
- 还有一些其他的函数,可能不太常用
#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相关的介绍就到这里啦!