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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
python plotly绘制直方图实例详解
Jul 22 Python
python查看数据类型的方法
Oct 12 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python中from module import * 的一个坑
2014/07/20 Python
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
python如何快速生成时间戳
2020/07/21 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
大一新生学期自我评价
2014/04/09 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
标准版离职证明书
2014/09/12 职场文书
明星邀请函
2015/02/02 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS