Numpy之random函数使用学习


Posted in Python onJanuary 29, 2019

random模块用于生成随机数,下面看看模块中一些常用函数的用法:

numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。
 #numpy.random.rand(d0, d1, ..., dn)
import numpy as np
#无参
np.random.rand()#生成生成[0,1)之间随机浮点数
type(np.random.rand())#float
#d0,d1....表示传入的数组形状
#一个参数
np.random.rand(1)#array([ 0.44280931])
type(np.random.rand(1))#numpy.ndarray
np.random.rand(5)#生成一个形状为5的一维数组
#两个参数
np.random.rand(2,3)#生成2x3的二维数组
#np.random.rand((2,3))#报错,参数必须是整数,不能是元组

numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。

#numpy.random.randn(d0, d1, ..., dn)
import numpy as np
#无参
np.random.randn()#1.4872544578730051,不一定是[0,1)之间的随机数
#一个参数
np.random.randn(1)
np.random.randn(5)#生成形状为5的一维数组
#两个参数
np.random.randn(2,3)#生成2x3数组
#np.random.randn((2,3))#报错,参数必须是整数

numpy.random.standard_normal(size=None):生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本

import numpy as np
#numpy.random.standard_normal(size=None)
#size为整数
np.random.standard_normal(2)#array([-2.04606393, -1.05720303])
#size为整数序列
np.random.standard_normal((2,3))
np.random.standard_normal([2,3]).shape#(2, 3)

numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。

#numpy.random.randint(low, high=None, size=None, dtype='l')
import numpy as np
#low=2
np.random.randint(2)#生成一个[0,2)之间随机整数
#low=2,size=5
np.random.randint(2,size=5)#array([0, 1, 1, 0, 1])
#low=2,high=2
#np.random.randint(2,2)#报错,high必须大于low
#low=2,high=6
np.random.randint(2,6)#生成一个[2,6)之间随机整数
#low=2,high=6,size=5
np.random.randint(2,6,size=5)#生成形状为5的一维整数数组
#size为整数元组
np.random.randint(2,size=(2,3))#生成一个2x3整数数组,取数范围:[0,2)随机整数
np.random.randint(2,6,(2,3))#生成一个2x3整数数组,取值范围:[2,6)随机整数
#dtype参数:只能是int类型
np.random.randint(2,dtype='int32')
np.random.randint(2,dtype=np.int32)

numpy.random.random_integers(low, high=None, size=None):生成一个整数或一个N维整数数组,取值范围:若high不为None,则取[low,high]之间随机整数,否则取[1,low]之间随机整数。

#numpy.random.random_integers(low, high=None, size=None)
import numpy as np
#low=2
np.random.random_integers(2)#生成一个[1,2]之间随机整数
#low=2、size=5
np.random.random_integers(2,size=5)#array([2, 1, 1, 1, 1])
#low=2、high=6
np.random.random_integers(2,6)#生成一个[2,6]之间随机整数
#low=2、high=6、size=5
np.random.random_integers(2,6,size=5)#生成一个形状为5的一维整数数组组
#size为整数元组
np.random.random_integers(2,size=(2,3))#生成一个2x3数组,取数范围:[1,2]随机整数
np.random.random_integers(2,6,(2,3))#生成一个2x3数组,取数范围:[2,6]随机整数

numpy.random.random_sample(size=None):生成一个[0,1)之间随机浮点数或N维浮点数组。

#numpy.random.random_sample(size=None)
import numpy as np
#size=None
np.random.random_sample()#生成一个[0,1)之间随机浮点数
#size=2
np.random.random_sample(2)#生成shape=2的一维数组
#size为整数元组
np.random.random_sample((2,))#等同np.random.random_sample(2)
#np.random.random_sample((,2))#报错
np.random.random_sample((2,3))#生成2x3数组
np.random.random_sample((3,2,2))#3x2x2数组

numpy.random.choice(a, size=None, replace=True, p=None):从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。

#numpy.random.choice(a, size=None, replace=True, p=None)
import numpy as np
#a为整数,size为None
np.random.choice(2)#生成一个range(2)中的随机数
#a为整数,size为整数
np.random.choice(2,2)#生成一个shape=2一维数组
#a为整数,size为整数元组
np.random.choice(5,(2,3))#生成一个2x3数组
#a为数组,size为None
np.random.choice(np.array(['a','b','c','f']))#生成一个np.array(['a','b','c','f']中随机元素
#a为数组,size为整数
np.random.choice(5,(2,3))#生成2x3数组
#a为数组,size为整数元组
np.random.choice(np.array(['a','b','c','f']),(2,3))#生成2x3数组
#p参数:可以理解成a中元素出现的概率,p的长度和a的长度必须相同,且p中元素之和为1,否则报错
#np.random.choice(2,p=[1])#报错,a和p长度不一致
np.random.choice(5,p=[0,0,0,0,1])#生成的始终是4
np.random.choice(5,3,p=[0,0.5,0.5,0,0])#生成shape=3的一维数组,元素取值为1或2的随机数

numpy.random.shuffle(x):对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None。

#numpy.random.shuffle(x)
import numpy as np
list1 = [1,2,3,4,5]
np.random.shuffle(list1)#输出None
list1#[1, 2, 5, 3, 4],原序列的顺序也被修改
arr = np.arange(9).reshape(3,3)
np.random.shuffle(arr)#对于多维数组,只沿着第一条轴打乱顺序

numpy.random.permutation(x):与numpy.random.shuffle(x)函数功能相同,两者区别:peumutation(x)不会修改X的顺序。

#numpy.random.permutation(x)
import numpy as np
#x=5
np.random.permutation(5)#生成一个range(5)随机顺序的数组
#x为列表或元组
list1 = [1,2,3,4]
np.random.permutation(list1)#array([2, 1, 4, 3])
#list1#[1, 2, 3, 4]
#x为数组
arr = np.arange(9)
np.random.permutation(arr)
arr2 = np.arange(9).reshape(3,3)
np.random.permutation(arr2)#对于多维数组,只会沿着第一条轴打乱顺序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python通过正则表达式选取callback的方法
Jul 18 Python
浅析Python 中整型对象存储的位置
May 16 Python
python简单实现操作Mysql数据库
Jan 29 Python
Python实现查看系统启动项功能示例
May 10 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
对python周期性定时器的示例详解
Feb 19 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
Jan 08 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
Python re.sub 反向引用的实现
Jul 07 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 #Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 #Python
Python Pexpect库的简单使用方法
Jan 29 #Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 #Python
对python numpy.array插入一行或一列的方法详解
Jan 29 #Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 #Python
10 分钟快速入门 Python3的教程
Jan 29 #Python
You might like
PHP实现统计代码行数小工具
2019/09/19 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
转一个日期输入控件,支持FF
2007/04/27 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
详解Python当中的字符串和编码
2015/04/25 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python读写LMDB文件的方法
2018/07/02 Python
基于python实现百度翻译功能
2019/05/09 Python
Python assert语句的简单使用示例
2019/07/28 Python
Python秒算24点实现及原理详解
2019/07/29 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
师生聚会感言
2014/01/26 职场文书
心理学专业求职信
2014/06/16 职场文书
家属慰问信
2015/02/14 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS