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中的多进程、多线程、协程
Jun 22 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
Python实现的爬虫功能代码
Jun 24 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
python networkx 根据图的权重画图实现
Jul 10 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
Python __slots__的使用方法
Nov 15 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操作XML作为数据库的类
2010/12/19 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
php实现微信支付之现金红包
2018/05/30 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
element跨分页操作选择详解
2020/06/29 Javascript
python中for语句简单遍历数据的方法
2015/05/07 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python实现各种插值法(数值分析)
2019/07/30 Python
python实现发送邮件
2021/03/02 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
十月份红领巾广播稿
2014/01/22 职场文书
社会实践感言
2014/01/25 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python