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 json encode datetime类型
Dec 28 Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
python中global用法实例分析
Apr 30 Python
python实现连接mongodb的方法
May 08 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
使用python脚本实现查询火车票工具
Jul 19 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
使用 Python 清理收藏夹里已失效的网站
Dec 03 Python
Python命令行click参数用法解析
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
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python实现Linux命令xxd -i功能
2016/03/06 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
爱国演讲稿400字
2014/05/07 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
保卫工作个人总结
2015/03/03 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android