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 xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
python实现12306火车票查询器
Apr 20 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
使用python实现简单五子棋游戏
Jun 18 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
Python os模块常用方法和属性总结
Feb 20 Python
Python多线程thread及模块使用实例
Apr 28 Python
python suds访问webservice服务实现
Jun 26 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
mysql 搜索之简单应用
2007/04/27 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
服装行业创业计划书范文
2014/02/05 职场文书
电钳工人个人求职信
2014/05/10 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
家长会后的感想
2015/08/11 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书