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 isinstance判断对象类型
Sep 06 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
python使用cStringIO实现临时内存文件访问的方法
Mar 26 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
Python实现的下载网页源码功能示例
Jun 13 Python
利用Django-environ如何区分不同环境
Aug 26 Python
python学生信息管理系统(完整版)
Apr 05 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
python中Pexpect的工作流程实例讲解
Mar 02 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
一个基于jquery的图片切换效果
2010/07/06 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
js读取本地文件的实例
2017/12/22 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
原生python实现knn分类算法
2019/10/24 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
外贸英语专业求职信范文
2013/12/25 职场文书
就业意向书范文
2014/04/01 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
护士医德医风心得体会
2016/01/25 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技