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中的JSON模块
Apr 08 Python
python添加模块搜索路径方法
Sep 11 Python
使用python实现ANN
Dec 20 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
基于Python获取城市近7天天气预报
Nov 26 Python
pytorch之inception_v3的实现案例
Jan 06 Python
Python叠加矩形框图层2种方法及效果
Jun 18 Python
python 获取字典键值对的实现
Nov 12 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
香妃
2021/03/03 冲泡冲煮
PHP字符串处理的10个简单方法
2010/06/30 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
详解php中的implements 使用
2017/06/13 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python语言中有算法吗
2020/06/16 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
Hibernate持久层技术
2013/12/16 面试题
高中生家长会演讲稿
2014/01/14 职场文书
职工代表大会主持词
2014/04/01 职场文书
开学典礼演讲稿
2014/05/23 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
车贷收入证明范本
2014/09/14 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang