NumPy——数组函数与方法_伪随机数的生成

NumPy的random子模块提供了一系列高效生成多种概率分布函数。比如randn()函数创建随机数据。

使用normal()函数可以创建标准正态分布抽样数据

import numpy as np
print(np.random.normal(size=(5,5)))
[[ 0.79992821 -1.78133841  0.06778658  0.03911525  0.13360691]
 [ 1.31529311 -0.48196512 -1.03440143  2.38338257  0.67075033]
 [ 0.86141708 -0.75461547  0.12603508  0.50489751  0.47725957]
 [ 0.4059022  -0.36013658 -1.54878453  1.23895367  0.68407693]
 [ 0.46069959 -1.00806508 -1.14002345 -1.54640859  1.87470935]]

Process finished with exit code 0

randn()函数可以产生平均值为0、标准差为1的正态分布样本。

print(np.random.randn(10))
print(np.random.randn(5,5))
[-0.50907001 -2.34570972  0.66624459  0.65417108  0.20178166 -0.9423711
  0.54351023 -1.21474636 -1.19745508 -2.70718711]
[[ 0.67802178  0.18717767 -0.17717098 -0.47538178  0.85340688]
 [-0.09816416 -0.02900613  1.81776458 -0.03567663  0.95866703]
 [-0.45256947  0.22449019  0.59653949 -0.86867511 -1.397951  ]
 [-0.73883491  0.48736556  0.42286869  0.92605993  0.46450267]
 [-0.25197557 -2.93124781  1.82696798  0.05129566  0.5924522 ]]

Process finished with exit code 0

normal()函数与randn()函数在产生5×5数组上的不同之处

  • normal()需要传入一个元组
  • randn()只需要传入一系列维度值

除了生成随机的数据外,最常用的操作还有设置随机种子。上述的随机数实际上是计算机依据随机数生成器在确定性条件下生成的数据,我们一般称之为伪随机数通过设置随机种子,我们可以重复之前生成的随机数据,这为重复同样的分析结果(该分析使用到了随机数据)提供了帮助。

print(np.random.seed(1234))
#这里的1234可以理解为一种标记,只要设置成一样就可实现复现

此处使用 random 子模块的 seed()函数设定一个全局的随机种子。如果要避免全局状态,可以使用 RandomState ()函数创建一个隔离的随机数生成器。

r = np.random.RandomState(123456)
print(r.randn(10))
[ 0.4691123  -0.28286334 -1.5090585  -1.13563237  1.21211203 -0.17321465
  0.11920871 -1.04423597 -0.86184896 -2.10456922]

Process finished with exit code 0

random子模块中常用的随机函数:

函数说明
seed设定全局随机数生成器种子
RandomState设定局部随机数生成器种子
permuation随机排列输入序列
shuffle将输入序列就地随机排列(洗牌)
rand生成随机值
randint根据指定范围随机选取整数
randn从标准正态分布中随机抽样
binomial二项分布取样
normal正态分布取样
beta贝塔分布取样
chisquare卡方分布取样
gamma伽马分布取样
uniform均匀分布取样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值