在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。
总体来说,numpy.random模块分为四个部分,对应四种功能:
1. 简单随机数: 产生简单的随机数据,可以是任何维度
2. 排列:将所给对象随机排列
3. 分布:产生指定分布的数据,如高斯分布等
4. 生成器:种随机数种子,根据同一种子产生的随机数是相同的
以下是详细内容以及代码实例:(以下代码默认已导入numpy:import numpy as np

1. 生成器

电脑产生随机数需要明白以下几点:
(1)随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。
(2)只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值)
(3)随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。
numpy.random 设置种子的方法有:

python 随机一个端口号 python生成随机数_python 随机一个端口号

np.random.RandomState(42)

2、简单随机数

                                             

python 随机一个端口号 python生成随机数_数组_02

                                                      

python 随机一个端口号 python生成随机数_数组_03

例:

rng = np.random.RandomState(42) # 生成随机数时可指定一种子,目的是为了生成相同的随机数,实现代码的复现。

X = rng.randn(100, 2)

 

参考自:

 

具体解读:

1、np.random.rand()

给定一个形状创建数组,并在数组中加入[0,1]之间均匀分布的随机样本。

numpy.random.rand(d0, d1, ..., dn),产生d0 - d1 - ... - dn形状的在[0,1)上均匀分布的float型数。

2、np.random.randn()

以给定的形状创建一个数组,数组元素符合标准正态分布N(0,1)。

若要获得一般正态分布N(u,sigma2),可用 sigma*np.random.randn+u

numpy.random.randn(d0,d1,...,dn),产生d0 - d1 - ... - dn形状的标准正态分布的float型数。

3.numpy.random.randint()
用法是:numpy.random.randint(low,high=None,size=None,dtype)
生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low)

numpy.random.randint(low, high=None, size=None, dtype='l'),产生随机整数

4.numpy.random.random_integers()
用法是: numpy.random.random_integers(low,high=None,size=None)
生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low]

此外,若要将【a,b】区间分成N等分,也可以用此函数实现

 numpy.random.random_integers(low, high=None, size=None),在闭区间上产生随机整数;

a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

5.numpy.random_sample()
用法是: numpy.random.random_sample(size=None)
以给定形状返回[0,1)之间的随机浮点数

 

6.numpy.random.choice()
用法是: numpy.random.choice(a,size=None,replace=True,p=None)
若a为数组,则从a中选取元素;若a为单个int类型数,则选取range(a)中的数
replace是bool类型,为True,则选取的元素会出现重复;反之不会出现重复
p为数组,里面存放选到每个数的可能性,即概率

7、函数原型:  numpy.random.uniform(low,high,size)

功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.

参数介绍: 
    
    low: 采样下界,float类型,默认值为0;
    high: 采样上界,float类型,默认值为1;
    size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。

返回值:ndarray类型,其形状和参数size中描述一致。