伪随机数生成

numpy.random模块可以高效生成多种概率分布下的完整样本值数组。例如用normal来获得正态分布样本数组

1
2
3
4
5
6
samples = np.random.normal(size=(4,4))
print(samples) ==>
[[ 0.47198411 1.64333761 1.05519358 -0.53290582]
[ 1.56804504 -0.99550696 -0.83978806 -0.69986521]
[ 0.9641456 -0.05924003 0.10062456 -1.15433177]
[-0.37968297 -0.69634852 0.79328 -0.22803585]]

这在生成样本的时候比纯python快了一个数量级。

之所以是伪随机数是因为它们是由具有确定性行为的算法根据随机数生成器中的随机数种子生成的。可以用np.random.seed更改Numpy的随机数种子

1
np.random.seed(1234)

可以用numpy.random.Randomstate生成一个随机数生成器,使之独立于全局

1
2
3
rng = np.random.RandomState(1234)
print(rng.randn(10)) ==>
[ 0.47143516 -1.19097569 1.43270697 -0.3126519 -0.72058873 0.88716294 0.85958841 -0.6365235 0.01569637 -2.24268495]

下面是numpy.random中的部分函数列表

load failed

Author: YihangBao
Link: https://roarboil.github.io/2019/09/05/createrandom/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.