在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,下面我们学习一下具体的使用,本文着重说明各个分布随机数的生成。
numpy.random.rand()
- rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
- 括号参数为生成随机数的维度
a = np.random.rand(4,2)
print(a)
#[[ 0.12531495 0.21084176]
# [ 0.49285425 0.71383499]
# [ 0.34699335 0.04372341]
# [ 0.15578197 0.43788198]]
numpy.random.randint()
- 返回随机整数,范围区间为[low,high),包含low,不包含high
- 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
- high没有填写时,默认生成随机数的范围是[0,low)
np.random.randint(1,5) # 返回1个[1,5)时间的随机整数
np.random.randint(-5,5,size=(2,2))
numpy.random.random(size=None)
np.random.random(size=(2,2))
numpy.random.randn()
- randn函数返回一个或一组样本,具有标准正态分布
- 标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)
np.random.randn(2,4)
#[[0.27795239, -2.57882503, 0.3817649 , 1.42367345],
# [-1.16724625, -0.22408299, 0.63006614, -0.41714538]]
np.random.normal(loc=0.0, scale=1.0, size=None)正态分布
- loc:float概率分布的均值,对应着整个分布的中心center
- scale:float概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高
- size:int or tuple of ints输出的shape,默认为None,只输出一个值
- np.random.randn(size)所谓标准正太分布(μ=0, σ=1),对应于np.random.normal(loc=0, scale=1, size)
mu, sigma = 0, 0.1 # mean and standard deviation
s = np.random.normal(mu, sigma, 1000)
numpy.random.exponential(scale=1.0, size=None)
- 这里的scale是β,而β=1/λ
numpy.random.poisson(lam=1.0, size=None)
import numpy as np
s = np.random.poisson(5, 10000)
s = np.random.poisson(lam=(100., 500.), size=(100, 2))
#分别得到λ=100,500的数组,100为第一列,500为第二列
numpy.random.uniform(low=0.0, high=1.0, size=None)
- 生成[a, b)的均匀分布
s = np.random.uniform(-1,0,1000)