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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
Python 冒泡,选择,插入排序使用实例
Feb 05 Python
星球大战与Python之间的那些事
Jan 07 Python
5个很好的Python面试题问题答案及分析
Jan 19 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
python实现图片识别汽车功能
Nov 30 Python
python中的数据结构比较
May 13 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
pytorch 如何使用amp进行混合精度训练
May 24 Python
anaconda python3.8安装后降级
Jun 11 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
三种php连接access数据库方法
2013/11/11 PHP
工作需要写的一个js拖拽组件
2011/07/28 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
python实现神经网络感知器算法
2017/12/20 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python多线程获取返回值代码实例
2020/02/17 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
国家励志奖学金获奖感言
2014/01/09 职场文书
2014年中秋寄语
2014/08/11 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
社区党务工作总结2015
2015/05/19 职场文书
投诉书格式范本
2015/07/02 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS