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解析网页源代码中的115网盘链接实例
Sep 30 Python
Python编写屏幕截图程序方法
Feb 18 Python
简单介绍Python中的RSS处理
Apr 13 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
python识别验证码图片实例详解
Feb 17 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
去除python中的字符串空格的简单方法
Dec 22 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 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
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
jQuery代码实现实时获取时间
2017/01/29 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
vue-router单页面路由
2017/06/17 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python中的choice()方法使用详解
2015/05/15 Python
Python编程中的异常处理教程
2015/08/21 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python装饰器初探(推荐)
2016/07/21 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
django ajax json的实例代码
2018/05/29 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
英国现代绅士品牌:Hackett
2017/12/17 全球购物
政府采购方案
2014/06/12 职场文书
大学活动总结模板
2014/07/10 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
javascript实现计算器功能详解流程
2021/11/01 Javascript