python numpy之np.random的随机数函数使用介绍


Posted in Python onOctober 06, 2019

np.random的随机数函数(1)

函数 说明
rand(d0,d1,..,dn) 根据d0?dn创建随机数数组,浮点数, [0,1),均匀分布
randn(d0,d1,..,dn) 根据d0?dn创建随机数数组,标准正态分布
randint(low[,high,shape]) 根据shape创建随机整数或整数数组,范围是[low, high)
seed(s) 随机数种子, s是给定的种子值

np.random.rand

import numpy as np

a = np.random.rand(3, 4, 5)

a
Out[3]: 
array([[[0.28576737, 0.96566496, 0.59411491, 0.47805199, 0.97454449],
    [0.15970049, 0.35184063, 0.66815684, 0.13571458, 0.41168113],
    [0.66737322, 0.91583297, 0.68033204, 0.49083857, 0.33549182],
    [0.52797439, 0.23526146, 0.39731129, 0.26576975, 0.26846021]],

    [[0.46860445, 0.84988491, 0.92614786, 0.76410349, 0.00283208],
    [0.88036955, 0.01402271, 0.59294569, 0.14080713, 0.72076521],
    [0.0537956 , 0.08118672, 0.59281986, 0.60544876, 0.77931621],
    [0.41678215, 0.24321042, 0.25167563, 0.94738625, 0.86642919]],

    [[0.36137271, 0.21672667, 0.85449629, 0.51065516, 0.16990425],
    [0.97507815, 0.78870518, 0.36101021, 0.56538782, 0.56392004],
    [0.93777677, 0.73199966, 0.97342172, 0.42147127, 0.73654324],
    [0.83139234, 0.00221262, 0.51822612, 0.60964223, 0.83029954]]])

np.random.randn

b = np.random.randn(3, 4, 5)

b
Out[5]: 
array([[[ 0.09170952, -0.36083675, -0.18189783, -0.52370155,
     -0.61183783],
    [ 1.05285606, -0.82944771, -0.93438396, 0.32229904,
     -0.85316565],
    [ 1.41103666, -0.32534111, -0.02202953, 1.02101228,
     1.59756695],
    [-0.33896372, 0.42234042, 0.14297587, -0.70335248,
     0.29436318]],

    [[ 0.73454216, 0.35412624, -1.76199508, 1.79502353,
     1.05694614],
    [-0.42403323, -0.36551581, 0.54033378, -0.04914723,
     1.15092556],
    [ 0.48814148, 1.09265266, 0.65504441, -1.04280834,
     0.70437122],
    [ 2.92946803, -1.73066859, -0.30184912, 1.04918753,
     -1.58460681]],

    [[ 1.24923498, -0.65467868, -1.30427044, 1.49415265,
     0.87520623],
    [-0.26425316, -0.89014489, 0.98409579, 1.13291179,
     -0.91343016],
    [-0.71570644, 0.81026219, -0.00906133, 0.90806035,
     -0.914998 ],
    [ 0.22115875, -0.81820313, 0.66359573, -0.1490853 ,
     0.75663096]]])

np.random.randint

c = np.random.randint(100, 200, (3, 4))

c
Out[9]: 
array([[104, 140, 161, 193],
    [134, 147, 126, 120],
    [117, 141, 162, 137]])

numpy.random.randint的详细用法 - python

函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low, high)。如果没有写参数high的值,则返回[0,low)的值。
numpy.random.randint(low, high=None, size=None, dtype='l')

参数如下:

参数 描述
low: int 生成的数值最低要大于等于low。 (hign = None时,生成的数值要在[0, low)区间内)
high: int (可选) 如果使用这个值,则生成的数值在[low, high)区间。
size: int or tuple of ints(可选) 输出随机数的尺寸,比如size=(m * n* k)则输出同规模即m * n* k个随机数。默认是None的,仅仅返回满足要求的单一随机数。
dtype: dtype(可选): 想要输出的格式。如int64、int等等

输出:

返回一个随机数或随机数数组

例子

>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

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

>>>np.random.randint(2, high=10, size=(2,3))
array([[6, 8, 7],
       [2, 5, 2]])

np.random.seed
随机种子生成器,使下一次生成的随机数为由种子数决定的“特定”的随机数,如果seed中参数为空,则生成的随机数“完全”随机。参考和文档。

np.random.seed(10)

np.random.randint(100, 200, (3 ,4))
Out[11]: 
array([[109, 115, 164, 128],
    [189, 193, 129, 108],
    [173, 100, 140, 136]])

np.random.seed(10)

np.random.randint(100 ,200, (3, 4))
Out[13]: 
array([[109, 115, 164, 128],
    [189, 193, 129, 108],
    [173, 100, 140, 136]])

np.random的随机数函数(2)

函数 说明
shuffle(a) 根据数组a的第1轴(也就是最外层的维度)进行随排列,改变数组x
permutation(a) 根据数组a的第1轴产生一个新的乱序数组,不改变数组x
choice(a[,size,replace,p]) 从一维数组a中以概率p抽取元素,形成size形状新数组replace表示是否可以重用元素,默认为False

np.random.shuffle

a = np.random.randint(100, 200, (3, 4))

a
Out[15]: 
array([[116, 111, 154, 188],
    [162, 133, 172, 178],
    [149, 151, 154, 177]])

np.random.shuffle(a)

a
Out[17]: 
array([[116, 111, 154, 188],
    [149, 151, 154, 177],
    [162, 133, 172, 178]])

np.random.shuffle(a)

a
Out[19]: 
array([[162, 133, 172, 178],
    [116, 111, 154, 188],
    [149, 151, 154, 177]])

可以看到,a发生了变化,轴。

np.random.permutation

b = np.random.randint(100, 200, (3, 4))

b
Out[21]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

np.random.permutation(b)
Out[22]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

b
Out[24]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

可以看到,b没有发生改变。

np.random.choice

c = np.random.randint(100, 200, (8,))

c
Out[26]: array([123, 194, 111, 128, 174, 188, 109, 115])

np.random.choice(c, (3, 2))
Out[27]: 
array([[111, 123],
    [109, 115],
    [123, 128]])#默认可以出现重复值

np.random.choice(c, (3, 2), replace=False)
Out[28]: 
array([[188, 111],
    [123, 115],
    [174, 128]])#不允许出现重复值

np.random.choice(c, (3, 2),p=c/np.sum(c))
Out[29]: 
array([[194, 188],
    [109, 111],
    [174, 109]])#指定每个值出现的概率

np.random的随机数函数(3)

函数 说明
uniform(low,high,size) 产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc,scale,size) 产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam,size) 产生具有泊松分布的数组,lam随机事件发生率,size形状
u = np.random.uniform(0, 10, (3, 4))

u
Out[31]: 
array([[9.83020867, 4.67403279, 8.75744495, 2.96068699],
    [1.31291053, 8.42817933, 6.59036304, 5.95439605],
    [4.36353698, 3.56250327, 5.87130925, 1.49471337]])

n = np.random.normal(10, 5, (3, 4))

n
Out[33]: 
array([[ 8.17771928, 4.17423265, 3.28465058, 17.2669643 ],
    [10.00584724, 9.94039808, 13.57941572, 4.07115727],
    [ 6.81836048, 6.94593078, 3.40304302, 7.19135792]])

p = np.random.poisson(2.0, (3, 4))

p
Out[35]: 
array([[0, 2, 2, 1],
    [2, 0, 1, 3],
    [4, 2, 0, 3]])

数据分析师分析问题第一步,必须明确这是不是一个问题!!!

Python 相关文章推荐
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
python中循环语句while用法实例
May 16 Python
Python中取整的几种方法小结
Jan 06 Python
Django学习笔记之ORM基础教程
Mar 27 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
python实现梯度下降法
Mar 24 Python
Python实现汇率转换操作
May 03 Python
python学习将数据写入文件并保存方法
Jun 07 Python
如何解决pycharm调试报错的问题
Aug 06 Python
Python中的程序流程控制语句
Feb 24 Python
python系列 文件操作的代码
Oct 06 #Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 #Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 #Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 #Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 #Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 #Python
Django学习之文件上传与下载
Oct 06 #Python
You might like
php数据库连接
2006/10/09 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
利用js对象弹出一个层
2008/03/26 Javascript
js常用代码段收集
2011/10/28 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
Python中input与raw_input 之间的比较
2017/08/20 Python
简单了解Django ContentType内置组件
2019/07/23 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
python多维数组分位数的求取方式
2020/03/03 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
客户代表自我评价范例
2013/09/24 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
公诉意见书范文
2015/06/05 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB