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比较2个xml内容的方法
May 11 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
python difflib模块示例讲解
Sep 13 Python
Python 加密与解密小结
Dec 06 Python
python进行文件对比的方法
Dec 24 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
PyCharm下载和安装详细步骤
Dec 17 Python
详解python itertools功能
Feb 07 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
使用Django框架创建项目
Jun 10 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
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
Python自动调用IE打开某个网站的方法
2015/06/03 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
快速了解python leveldb
2018/01/18 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
opencv实现图像平移效果
2021/03/24 Python
品学兼优的大学生自我评价
2013/09/20 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
工作会议主持词
2014/03/17 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
考核评语大全
2014/04/29 职场文书
奥林匹克的口号
2014/06/13 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers