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海龟绘图实例教程
Jul 24 Python
详解Python3中yield生成器的用法
Aug 20 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
python实现自动登录
Sep 17 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
python3中numpy函数tile的用法详解
Dec 04 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
pycharm全局搜索的具体步骤
Jul 28 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 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
基于jquery 的一个progressbar widge
2010/10/29 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
JS中数组重排序方法
2016/11/11 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
JS实现轮播图效果
2020/01/11 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python绘制封闭多边形教程
2020/02/18 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
用Python 执行cmd命令
2020/12/18 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
求职信写作要突出重点
2014/01/01 职场文书
优秀村官事迹材料
2014/01/10 职场文书
二年级体育教学反思
2014/01/15 职场文书
银行优秀员工事迹
2014/02/06 职场文书
中学生运动会入场词
2014/02/12 职场文书
军训感想500字
2014/02/20 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
党委班子对照检查材料
2014/08/19 职场文书
雷峰塔导游词
2015/02/09 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年母亲节寄语
2015/03/23 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis