在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。
总体来说,numpy.random模块分为四个部分,对应四种功能:
简单随机数: 产生简单的随机数据,可以是任何维度
排列:将所给对象随机排列
分布:产生指定分布的数据,如高斯分布等
生成器:种随机数种子,根据同一种子产生的随机数是相同的
1. 生成器
电脑产生随机数需要明白以下几点:
随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。
只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值)
随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。
numpy.random 设置种子的方法有:
函数名称函数功能参数说明
RandomState
定义种子类
RandomState是一个种子类,提供了各种种子方法,最常用seed
seed([seed])
定义全局种子
参数为整数或者矩阵
2. 简单随机数
函数名称函数功能参数说明
rand(d0, d1, …, dn)
产生均匀分布的随机数
dn为第n维数据的维度
randn(d0, d1, …, dn)
产生标准正态分布随机数
dn为第n维数据的维度
randint(low[, high, size, dtype])
产生随机整数
low:最小值;high:最大值;size:数据个数
random_sample([size])
在[0,1)内产生随机数
size:随机数的shape,可以为元祖或者列表,[2,3]表示2维随机数,维度为(2,3)
random([size])
同random_sample([size])
同random_sample([size