之前一直不是很清楚Python中的random、randn、randint等的区别,现在在这里集中整理一下:
Python有一个内建函数叫做random,是用来生成伪随机数的,但是这个模块存在很大的不足,一次只能生成一个值;而numpy库里的random模块则很好的弥补了它的不足,numpy.random可以高效的生成多种概率分布下的完整样本值数组,之所以把它们生成的数成为伪随机数,是因为它们是由具有确定性行为的算法根据随机数生成器中的随机数种子生成的,那么,什么是随机数种子呢?简单来说,计算机中的随机数都是基于一个真随机数(种子)通过一个算法不断迭代产生的伪随机数,而那个真随机数就是随机数种子,
我们可以通过命令np.random.seed()来改变numpy的随机数种子
而randn等等则是numpy.random模块下的功能函数,整理部分如下:
seed | 向随机数生成器传递随机状态种子 |
shuffle | 随机排列一个是序列 |
rand | 从均匀分布中抽取样本 |
randint | 根据给定的由低到高的范围抽取随机整数 |
randn | 从均值0方差1的正态分布中抽取样本 |
normal | 从正态(高斯)分布中抽取样本 |
binomial | 从二项分布中抽取样本 |
uniform | 从均匀【0,1)分布中抽取样本 |
下面来简单介绍一下Python中的内建模块random的使用:
random模块中的random()方法用来生成一个[0,1)范围内的小数,使用时必须引入random模块。
import random
print("random():",random.random())
输出如下:
也可以生成任意两个整数之间的随机数,此处不再多说。