Numpy.random模块生成随机数

在数据分析和机器学习中,随机数起着关键作用,比如权重初始化和数据划分。Numpy.random模块提供了高效的方法来生成随机数,包括rand()、randn()、randint()和random()函数,它们分别用于生成[0, 1)内的均匀分布、标准正态分布、指定范围内的整数以及[0.0, 1.0)间的浮点数。" 12497531,1870547,C#事件(event)详解,"['C#编程', '事件处理', '委托 delegate', '键盘输入']
摘要由CSDN通过智能技术生成

在数据分析中,随机数不仅有利于数据分析,而且在机器学习方面随机数的使用也是机器学习算法配置和评估的重要部分。例如,神经网络中的权重的随机初始化和将数据分成随机的训练和测试集等。因此,生成随机数是数据分析中一项很重要的技术。

在 Python 中,可以通过 Python 中的 random 模块生成随机数,但是,其效率要远低于利用 NumPy 中的 random 模块生成随机数。numpy.random 模块提供了非常全的自动产生数据的 API,通过该模块中的函数可以很方便地生成随机数。下面介绍使用 numpy.random 模块中的函数生成随机数的常用方法。

使用 rand() 函数

rand() 函数的格式如下:

numpy.random.rand(d0,d1, …,dn)

该函数的作用是生成一个 (d0,d1, …,dn) 维的数组,数组的元素取自 [0, 1) 内均匀分布的随机数,但数组的元素不包括 1。若没有参数输入,则生成一个数。括号里面的参数是指定产生数组的形状。

randn() 函数

randn() 函数的格式如下:

numpy.random.randn(d0,d1, …,dn)

该函数的作用是生成一个 (d0,d1, …,dn) 维的数组,数组的元素是标准正态分布随机数。若没有参数输入,则生成一个数。括号里面的参数是指定产生数组的形状。

randint() 函数

randint() 函数的格式如下:

numpy.random.randint(low, high, size, dtype)

该函数的作用是生成指定范围的随机数,随机数取值区间为 [low, high),若没有输入参数 high 则取值区间为 [0, low)。size 参数是元组,用于确定数组的形状,dtype 用于指定数组中的数据类型。

random() 函数

random() 函数格式如下:

numpy.random.random(size=None)

该函数的作用是产生 [0.0, 1.0) 之间的浮点数,但数组的元素不包括 1。size 表示生成元素个数。若没有参数输入,则生成一个数。

生成随机数的示例代码 example1 如下。

# -*- coding: utf-8 -*-
import numpy as np
#用rand()生成随机数
a = np.random.rand()        #生成一个数
b = np.random.rand(1)       #生成1行1列数组
c = np.random.rand(2,3)     #生成2行3列数组
print(a,b,c)
  
#用randn()生成随机数
a = np.random.randn()       #生成一个数
b = np.random.randn(1)      #生成1行1列数组
c = np.random.randn(2,3)    #生成2行3列数组
print(a,b,c)
  
#用randint()生成随机数
a = np.random.randint(6)
b = np.random.randint(6, size=1)
c = np.random.randint(6, size=(2,4),dtype='int64')
print(a,b,c)
  
#用random()生成随机数
a = np.random.random(6)
b = np.random.random()
print(a,b)

除了上述产生随机数的函数外,random 模块还包括许多产生随机数的函数,如表 1 所示。
 

表 1:random 模块中其他产生随机数的函数
函数说明
seed()确定随机数生成器的种子
permutation()返回一个序列的随机排列或返回一个随机排列的范围
shuffle()对一个序列逬行随机排列
binomial()产生二项分布的随机数
normal()产生正态(高斯)分布的随机数
beta()产生Beta分布的随机数
chisquare()产生卡方分布的随机数
gamma()产生Gamma分布的随机数
uniformO产生在[0,1]中均匀分布的随机数
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值