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设计模式之单例模式实例
Apr 26 Python
图文详解WinPE下安装Python
May 17 Python
python GUI实例学习
Nov 21 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
python 日期操作类代码
May 05 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
Python笔记之代理模式
Nov 20 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Python是怎样处理json模块的
Jul 16 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 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 文件锁
2017/02/19 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
React实现轮播效果
2020/08/25 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
怎样使用Python脚本日志功能
2016/08/14 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
如何利用find命令查找文件
2016/11/18 面试题
十一个高级MySql面试题
2014/10/06 面试题
《桂花雨》教学反思
2014/04/12 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫