from numpy import random

# 设定随机数种子
random.seed(134)

# 产生均匀分布的随机数,维度是 3*2
random.rand(3, 2)
# 输出 array([[0.19151945, 0.62210877],
#        [0.43772774, 0.78535858],
#        [0.77997581, 0.27259261]])

# 产生标准正态分布随机数,维度是3*2
random.randn(3, 2)
# 输出 array([[ 0.85958841, -0.6365235 ],
#        [ 0.01569637, -2.24268495],
#        [ 1.15003572,  0.99194602]])

# 在[0,1)内产生随机数,维度是3*2
random.random((3, 2))
# 输出 array([[0.37025075, 0.56119619],
#        [0.50308317, 0.01376845],
#        [0.77282662, 0.88264119]])

# 产生指定区间的随机整数,维度是3*2
random.randint(low=2, high=10, size=(3, 2))
# 输出 array([[9, 5],
#        [2, 3],
#        [5, 2]])

# 正态分布,loc表示均值,scale表示方差
random.normal(loc=0, scale=1, size=(3, 2))
# 输出 array([[ 0.86371729, -0.12209157],
#        [ 0.12471295, -0.32279481],
#        [ 0.84167471,  2.39096052]])

# 泊松分布
random.poisson(lam=100, size=(3, 2))
# 输出 array([[ 95,  86],
#        [102, 103],
#        [ 93,  99]])

# 均匀分布
random.uniform(low=3, high=10, size=(3, 2))
# 输出 array([[5.67622216, 3.3771158 ],
#        [6.16153886, 9.87403319],
#        [3.8675989 , 3.83566629]])

# 产生beta分布
random.beta(a=3, b=5, size=(3, 2))
# 输出 array([[0.29453428, 0.43079414],
#        [0.74318561, 0.21577619],
#        [0.11941289, 0.44674076]])

# 二项分布(伯努利分布)
random.binomial(n=4, p=0.8, size=(3, 2))
# 输出 array([[3, 2],
#        [4, 3],
#        [3, 3]])

# 指数分布
random.exponential(scale=3, size=(3, 2))
# 输出 array([[ 4.78168574,  2.44771329],
#        [10.12979518,  0.47753906],
#        [ 0.09028607,  2.70341946]])

# F分布
random.f(dfnum=100, dfden=5, size=(3, 2))
# 输出 array([[1.5113714 , 0.77730943],
#        [0.83137741, 0.54722053],
#        [3.7934629 , 5.6308887 ]])
from numpy import random

random.seed(1234)

# 有放回随机采样
samples = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.choice(samples, size=5, replace=True)
# 输出 array([4, 3, 4, 2, 4])

# 无放回随机采样
random.choice(samples, size=5, replace=False)
# 输出 array([9, 1, 6, 8, 3])

# 打乱样本的顺序,以产生随机数的效果
samples = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(samples)
print(samples)
# 输出 [4, 3, 9, 7, 1, 5, 6, 8, 2]