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函数式编程
Jun 09 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
python操作mongodb根据_id查询数据的实现方法
May 20 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
基于python实现聊天室程序
Jul 27 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
python实现LRU热点缓存及原理
Oct 29 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
详解Python中的文件操作
Jan 14 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通用分页类page.php[仿google分页]
2008/08/31 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
chrome原生方法之数组
2011/11/30 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
python+Django+apache的配置方法详解
2016/06/01 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
django基于restframework的CBV封装详解
2019/08/08 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Python学习之time模块的基本使用
2021/01/17 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
元旦晚会邀请函
2014/01/27 职场文书
高中家长寄语
2014/04/02 职场文书
五一促销活动总结
2014/07/01 职场文书
毕业生实习证明
2014/09/19 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
初中作文评语
2014/12/25 职场文书
保险内勤岗位职责
2015/04/13 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Java基础之this关键字的使用
2021/06/30 Java/Android
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫