numpy.random模块用法总结


Posted in Python onMay 27, 2019

random模块用于生成随机数,下面看看模块中一些常用函数的用法:

from numpy import random

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

生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)

>>> random.uniform()
0.3999807403689315
>>> random.uniform(size=1)
array([0.55950578])
>>> random.uniform(5, 6)
5.293682668235986
>>> random.uniform(5, 6, size=(2,3))
array([[5.82416021, 5.68916836, 5.89708586],
    [5.63843125, 5.22963754, 5.4319899 ]])

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

生成一个(d0, d1, ..., dn)维的数组,数组的元素取自[0, 1)上的均分布,若没有参数输入,则生成一个数

>>> random.rand()
0.4378166124207712
>>> random.rand(1)
array([0.69845956])
>>> random.rand(3,2)
array([[0.15725424, 0.45786148],
    [0.63133098, 0.81789056],
    [0.40032941, 0.19108526]])
>>> random.rand(3,2,1)
array([[[0.00404447],
    [0.3837963 ]],

    [[0.32518355],
    [0.82482599]],

    [[0.79603205],
    [0.19087375]]])

numpy.random.randint(low, high=None, size=None, dtype='I')

生成size个整数,取值区间为[low, high),若没有输入参数high则取值区间为[0, low)

>>> random.randint(8)
5
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
    [1, 4, 1]],

    [[2, 2, 5],
    [7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
    [2, 7, 2]],

    [[2, 7, 6],
    [4, 7, 7]]], dtype=int64)

numpy.random.random_integers(low, high=None, size=None)

生成size个整数,取值区间为[low, high], 若没有输入参数high则取值区间为[1, low],注意这里左右都是闭区间

>>> random.randint(8)
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
    [1, 4, 1]],

    [[2, 2, 5],
    [7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
    [2, 7, 2]],

    [[2, 7, 6],
    [4, 7, 7]]], dtype=int64)

numpy.random.random(size=None)

产生[0.0, 1.0)之间的浮点数

>>> random.random(5)
array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882])
>>> random.random()
0.49761416226728084

相同用法:

  • numpy.random.random_sample
  • numpy.random.ranf
  • numpy.random.sample (抽取不重复)

 numpy.random.bytes(length)

 生成随机字节

>>> random.bytes(1)
b'%'
>>> random.bytes(2)
b'\xd0\xc3'

numpy.random.choice(a, size=None, replace=True, p=None)

从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取,p是a中每个数出现的概率

若a是整数,则a代表的数组是arange(a)

>>> random.choice(5)
3
>>> random.choice([0.2, 0.4])
0.2
>>> random.choice([0.2, 0.4], p=[1, 0])
0.2
>>> random.choice([0.2, 0.4], p=[0, 1])
0.4
>>> random.choice(5, 5)
array([1, 2, 4, 2, 4])
>>> random.choice(5, 5, False)
array([2, 0, 1, 4, 3])
>>> random.choice(100, (2, 3, 5), False)
array([[[43, 81, 48, 2, 8],
    [33, 79, 30, 24, 83],
    [ 3, 82, 97, 49, 98]],

    [[32, 12, 15, 0, 96],
    [19, 61, 6, 42, 60],
    [ 7, 93, 20, 18, 58]]])

numpy.random.permutation(x)

随机打乱x中的元素。若x是整数,则打乱arange(x),若x是一个数组,则将copy(x)的第一位索引打乱,意思是先复制x,对副本进行打乱处理,打乱只针对数组的第一维

>>> random.permutation(5)
array([1, 2, 3, 0, 4])
>>> random.permutation(5)
array([1, 4, 3, 2, 0])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[1, 2, 3],
    [4, 5, 6]])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[4, 5, 6],
    [1, 2, 3]])

numpy.random.shuffle(x)

与permutation类似,随机打乱x中的元素。若x是整数,则打乱arange(x). 但是shuffle会对x进行修改

>>> a = arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> random.permutation(a)
array([1, 4, 3, 2, 0])
>>> a
array([0, 1, 2, 3, 4])
>>> random.shuffle(a)
>>> a
array([4, 1, 3, 2, 0])

numpy.random.seed(seed=None)

设置随机生成算法的初始值

其它符合函数分布的随机数函数

  • numpy.random.beta
  • numpy.random.binomial
  • numpy.random.chisquare
  • numpy.random.dirichlet
  • numpy.random.exponential
  • numpy.random.f
  • numpy.random.gamma
  • numpy.random.geometric
  • numpy.random.gumbel
  • numpy.random.hypergeometric
  • numpy.random.laplace
  • numpy.random.logistic
  • numpy.random.lognormal
  • numpy.random.logseries
  • numpy.random.multinomial
  • numpy.random.multivariate_normal
  • numpy.random.negative_binomial
  • numpy.random.noncentral_chisquare
  • numpy.random.noncentral_f
  • numpy.random.normal
  • numpy.random.pareto
  • numpy.random.poisson
  • numpy.random.power
  • numpy.random.randn
  • numpy.random.rayleigh
  • numpy.random.standard_cauchy
  • numpy.random.standard_exponential
  • numpy.random.standard_gamma
  • numpy.random.standard_normal
  • numpy.random.standard_t
  • numpy.random.triangular
  • numpy.random.vonmises
  • numpy.random.wald
  • numpy.random.weibull
  • numpy.random.zipf

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

Python 相关文章推荐
python网页请求urllib2模块简单封装代码
Feb 07 Python
python调用新浪微博API项目实践
Jul 28 Python
Python程序中的观察者模式结构编写示例
May 27 Python
python实现分页效果
Oct 25 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
django settings.py 配置文件及介绍
Jul 15 Python
python批量处理txt文件的实例代码
Jan 13 Python
Python如何省略括号方法详解
Mar 21 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
python 如何调用 dubbo 接口
Sep 24 Python
python中实现栈的三种方法
Dec 19 Python
Django框架自定义session处理操作示例
May 27 #Python
numpy concatenate数组拼接方法示例介绍
May 27 #Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 #Python
python安装numpy和pandas的方法步骤
May 27 #Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 #Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 #Python
Python3.7 新特性之dataclass装饰器
May 27 #Python
You might like
一个域名查询的程序
2006/10/09 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
python实现祝福弹窗效果
2019/04/07 Python
python isinstance函数用法详解
2020/02/13 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
成教自我鉴定
2013/10/27 职场文书
实习单位推荐信范文
2013/11/27 职场文书
会计找工作求职信范文
2013/12/09 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸