python numpy 常用随机数的产生方法的实现


Posted in Python onAugust 21, 2019

numpy 中 的random模块有多个函数用于生成不同类型的随机数,常见的有 uniform、rand、random、randint、random_interges

下面介绍一下各自的用法

1、np.random.uniform的用法

np.random.uniform(low=0.0, high=1.0, size=None)

作用:可以生成[low,high)中的随机数,可以是单个值,也可以是一维数组,也可以是多维数组

参数介绍:

  • low :float型,或者是数组类型的,默认为0
  • high:float型,或者是数组类型的,默认为1
  • size:int型,或元组,默认为空
In[1]: import numpy as np

In[2]: np.random.uniform() # 默认为0到1
Out[2]: 0.827455693512018

In[3]: np.random.uniform(1,5)
Out[3]: 2.93533586182789

In[4]: np.random.uniform(1,5,4) #生成一维数组
Out[4]: array([ 3.18487512, 1.40233721, 3.17543152, 4.06933042])

In[5]: np.random.uniform(1,5,(4,3)) #生成4x3的数组
Out[5]: 
array([[ 2.33083328, 1.592934 , 2.38072  ],
    [ 1.07485686, 4.93224857, 1.42584919],
    [ 3.2667912 , 4.57868281, 1.53218578],
    [ 4.17965117, 3.63912616, 2.83516143]])

In[6]: np.random.uniform([1,5],[5,10]) 
Out[6]: array([ 2.74315143, 9.4701426 ])

2、np.random.random_sample的用法

和np.random.random作用一样

random_sample(size=None)

- 作用:返回[0,1)之间的浮点型随机数,通过size控制返回的形状

np.random.random_sample()
  0.47108547995356098
type(np.random.random_sample())
  <type 'float'>
np.random.random_sample((5,))
  array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428])

  Three-by-two array of random numbers from [-5, 0):

5 * np.random.random_sample((3, 2)) - 5
  array([[-3.99149989, -0.52338984],
      [-2.99091858, -0.79479508],
      [-1.23204345, -1.75224494]])

3、np.random.rand的用法

rand(d0, d1, …, dn)

作用:返回[0,1)内的浮点数,输入的d0,d1…dn代表维度信息,没有输入时,则返回[0,1)内的一个随机值

In[15]: np.random.rand()
Out[15]: 0.9027797355532956

In[16]:np.random.rand(3,3)
Out[16]: 
array([[ 0.47507608, 0.64225621, 0.9926529 ],
    [ 0.95028412, 0.18413813, 0.91879723],
    [ 0.89995217, 0.42356103, 0.81312942]])

In[17]: np.random.rand(3,3,3)
Out[17]: 
array([[[ 0.30295904, 0.76346848, 0.33125168],
    [ 0.77845927, 0.75020602, 0.84670385],
    [ 0.2329741 , 0.65962263, 0.93239286]],

    [[ 0.24575304, 0.9019242 , 0.62390674],
    [ 0.43663215, 0.93187574, 0.75302239],
    [ 0.62658734, 0.01582182, 0.66478944]],

    [[ 0.22152418, 0.51664503, 0.41196781],
    [ 0.47723318, 0.19248885, 0.29699868],
    [ 0.11664651, 0.66718804, 0.39836448]]])

4、np.random.randint的用法

randint(low, high=None, size=None, dtype='l')

作用:生成整型随机数,可以是单个随机数,也可以是多维的随机数构成的数组

参数介绍

  • low:int 型,随机数的下限
  • high:int 型,默认为空,随机数的上限,当此值为空时,函数生成[0,low)区间内的随机数
  • size:int、或ints、或元组,指明生成的随机数的类型
  • dtype:可选'int' ,'int32',默认为'l'
In[7]: np.random.randint(4)
Out[7]: 1

In[8]: np.random.randint(4,size=4)
Out[8]: array([2, 2, 2, 0])

In[9]: np.random.randint(4,10,size=6)
Out[9]: array([7, 9, 7, 8, 6, 9])

np.random.randint(4,10,size=(2,2),dtype='int32')
Out[10]: 
array([[7, 4],
    [6, 9]])

5、np.random.random_integers的用法

random_integers(low, high=None, size=None)

和randint的用法较为相似,区别在于[low,high]

的右边界能够取到,且改函数即将被抛弃,可以使用

np.random.randint(low,high+1)进行代替

总结:随机数可以分为两大类,一类是浮点型的,常以np.random.uniform为代表,np.random.rand,np.random.radnom和np.random.random_simple可以看作是np.random.uniform的特例;另一类是整数型的,以np.random.randint为代表,也有np.random.random_integers 但是后者将被前者取代

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之类的细节
Oct 13 Python
Python基于DES算法加密解密实例
Jun 03 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Python内置函数reversed()用法分析
Mar 20 Python
python实现两个文件合并功能
Apr 01 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
python如何控制进程或者线程的个数
Oct 16 Python
Python 中的Sympy详细使用
Aug 07 Python
在django模板中实现超链接配置
Aug 21 #Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 #Python
Django 在iframe里跳转顶层url的例子
Aug 21 #Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 #Python
django写用户登录判定并跳转制定页面的实例
Aug 21 #Python
Django自定义模板过滤器和标签的实现方法
Aug 21 #Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 #Python
You might like
利用 window_onload 实现select默认选择
2006/10/09 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
javascript 日期常用的方法
2009/11/11 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
python实现京东秒杀功能
2018/07/30 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
详解python 爬取12306验证码
2019/05/10 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python JSON编解码方式原理详解
2020/01/20 Python
Python logging模块handlers用法详解
2020/08/14 Python
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
社区工作者感言
2014/03/02 职场文书
中国好声音广告词
2014/03/18 职场文书
社区健康教育实施方案
2014/03/18 职场文书
卖房协议书
2014/04/11 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书