kaiyun.ccm numpy.random模块常用函数

发布于:25-06-20 播放次数:

在Numpy库中,我们频繁地运用np.random.rand()、np.random.randn()以及np.random.randint()这三个随机生成函数。

1、 np.random.randn()函数

作用:返回一个或一组服从标准正态分布的随机样本值

1)当函数括号内没有参数时,则返回一个浮点数;

若函数内部仅含有一个参数,输出结果将是一个秩为1的数组,这样的形式无法用来表示向量或矩阵。

当函数的参数个数达到两个或更多时,其输出结果会是一个对应维度的数组,这样的数组可以用来表示向量或矩阵;在使用np.random.randn()函数时,通常输入的是整数,但若输入的是浮点数,系统会自动将其直接截断并转换为整数。

注意:randn()函数没有上下界设置

标准正态分布,其均值设定为0,标准差设定为1,通常表示为N(0,1)。该分布的曲线图如下所示kaiyun全站网页版登录,即:

这里写图片描述

在-1.96至+1.96的区间内,曲线下方所覆盖的面积达到了0.9500,这表示在该区间内取值的概率为95%。同样地,当范围扩大至-2.58至+2.58时,曲线下方的面积增至0.9900,意味着在这个更宽的区间内取值的概率高达99%。

因此,使用np.random.randn()函数生成的随机数样本,其数值大多集中在-1.96到+1.96的区间内,尽管偶尔会有数值超出这个范围的情况,但这种情况发生的概率相对较低。

2、np.random.rand()函数

np.random.rand(d0,d1,d2……dn)

本函数的操作方式与np.random.randn()函数一致,它能生成一个或多个符合“0至1”之间均匀分布的随机样本值。这些随机样本的数值区间界定在

0,1),不包括1

numpy random.randn  _np.random.randn函数_ numpy随机数生成函数

3、使用np.random.uniform函数,可以生成指定范围内的随机浮点数,其中参数low代表最小值,high代表最大值,size则定义了生成的随机数组的形状。

功能:从指定范围内

生成在low与high之间均匀分布的随机浮点数,需留意其定义域为左闭右开kaiyun.ccm,即low值包含在内,而high值不包含。

参数介绍:

low: 采样下界,float类型,默认值为0;

high: 采样上界,float类型,默认值为1;

样本数量:表示输出样本的个数,其数据类型应为整数或元组,如size=(m,n,k)表示输出m*n*k个样本,若未指定,则默认输出一个数值。

返回结果为ndarray格式,其尺寸与参数size所定义的完全相符。

4、numpy.random.randint

numpy函数random.randint可生成指定范围内的随机整数,其中low参数设定最小值,high参数设定最大值(不包含),size参数指定生成的随机整数数量,dtype参数用于指定输出整数的类型,默认为字符类型。

输入:

low—–为最小值

high—-为最大值

size—–为数组维度大小

dtype—为数据类型,默认的数据类型是np.int。

返回值: 返回随机整数或整型数组,范围区间为

选取的范围包括最低值开yun体育app官网网页登录入口,但不包括最高值;若未填写最高值,系统将自动设定随机数的上限。

0,low

使用np模块中的random函数,可以生成一个介于1与10之间的随机整数,其大小参数设为10。
结果呈现为一个数组,其中包含十个元素,全部为零。
使用numpy库的随机整数生成函数,生成一个形状为(2, 4)的矩阵,其元素值介于5(包含)和6(不包含)之间。
输出:array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

4、numpy.random.seed

随机数生成器能够确保后续产生的随机数与预设的种子值相对应,从而生成“确定”的随机数序列;若种子参数未被指定,则生成的随机数将呈现“绝对”的随机性。

>>> import numpy as np
设置随机数生成器的种子为1,以确保后续操作中生成的随机数序列与种子1相匹配。
>>> a = np.random.random()
>>> a
0.417022004702574,此随机数值与种子1存在关联。
执行代码时,变量a被赋予了一个由numpy库的random模块生成的随机浮点数,由于未设定随机数种子,因此该数值是完全随机的。
>>> a
此数值为0.7203244934421581,代表一个完全随机生成的数字。
重新设定随机数生成器的种子为1,以确保本次随机操作与种子1相联系。
>>> a = np.random.random()
>>> a
随机数生成的结果与设定的种子值1紧密相连,且与最初产生的随机数值一致。

在计算机系统中,无法生成绝对随机的数值;随机数生成器依赖于概率分布模型来创建随机数。通过调整seed函数的参数,可以改变概率分布函数的设定,进而导致输出的随机数值各不相同。

改写:不得对专有名词进行修改,不得加入任何英文词汇,仅需提供改写后的内容,不得重复原文,不得分段,不得添加任何说明。

5、np.random.choice


>>> np.random.choice(5, 3)
array([0, 3, 4])
此代码等同于使用numpy库中的randint函数,生成一个范围在0到5之间,包含0但不包含5,的随机整数数组,其长度为3。
创建一个名为a1的numpy数组,其元素依次为3、5、2.6、41.2和5.7。
a2等于通过随机选择函数从a1中选取元素,选取数量为3,不进行替换,选择概率分布为[0.2, 0.1, 0.3, 0.4, 0.0]。
print(a2)

输出: array(

41.2,  5. ,  2.6

在a中按照p的概率选取size个元素,其中p值越高,该元素被选中的可能性就越大;此外,若replace参数设置为True,则选取的值可以出现重复。

使用numpy库中的random.permutation函数对数组x进行排列组合。

随机输出一个新顺序。对x中的元素进行随机混排。当x为整数时,对.arange(x)内的元素进行随机重排;如果x是数组形式,则对x的副本的第一维进行随机打乱,即先复制x,然后对副本的第一维顺序进行随机调整。

>>> random.permutation(5)
array([1, 2, 3, 0, 4])
执行随机排列操作,对包含数字1、4、9、12和15的列表进行重排。
array([15,  1,  9,  4, 12])
创建数组arr,该数组通过np.arange(9)生成从0到8的整数序列,然后通过reshape((3, 3))将其重塑为3行3列的二维数组。
执行np.random.permutation函数,对数组arr进行随机排列操作。
array([[6, 7, 8],
       [0, 1, 2],
       [3, 4, 5]])

6、numpy.random.shuffle(x)

调整序列排列,对其内在信息进行调整。(如同洗牌一般,重新排列其中的元素。)这与排列组合中的置换概念相似,即随机重新排列集合x中的各个元素。如果x代表整数,那么shuffle函数将直接对arange(x)范围内的元素进行随机打乱。然而,shuffle函数会对原始序列进行直接修改。

>>> a = arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> random.permutation(a)
array([1, 4, 3, 2, 0])
>>> a
array([0, 1, 2, 3, 4])
>>> random.shuffle(a)
>>> a
array([4, 1, 3, 2, 0])