版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目三
数组计算库NumPy任务1数组的创建任务2特殊数组任务3数组运算任务4矩阵操作任务1数组的创建任务引入小王分到的项目主要是统计运算,由于没有数据,为了运行程序,小王定义数组数据进行程序演示。那么数组是什么?如何创建?知识准备数组(Array)是有序的元素序列,向量、矩阵是线性代数中定义的一个数学概念。数组是计算机上的概念,从外观和数据结构上看,二维数组和数学中的矩阵没有区别,一维数组和数学中的向量没有区别。向量、矩阵是特殊的数组,三者关系如图所示。一、数组数据类型Numpy支持的数据类型比Python内置的类型要多,基本上可以和C语言的数据类型对应上,其中部分类型对应为Python内置的类型,表列举了常用NumPy基本类型。续案例——定义数组类型案例——定义输入数组数据类型二、创建数组在NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。根据数组中元素的维度将数组分为一维数组、二维数组、多维数组。1.array函数Numpy使用array函数通过直接定义数据创建数组,返回N维数组对象(即ndarray)型2.一维数组一维数组是最简单的数组,数组只有一个下标,一维数组相当于向量。案例——创建一维数组(1)arange函数arange通过直接定义数据元素个数,而不是定义数据元素来创建数组。案例——创建一个从0开始,到10结束,增量为2的数组x(2)linspace函数linspace通过直接定义数据元素个数,而不是数据元素直接的增量来创建一维数组(向量)。案例——创建一个从0开始,到10结束,包含6个数据元素的向量x(3)函数logspace与linspace一样,logspace也通过直接定义向量元素个数,而不是数据元素之间的增量来创建一个对数分隔的数组。3.二维数组二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中。二维数组相当于矩阵,所以矩阵是数组的子集。案例——创建二维数组4.多维数组在Numpy中,一个阵列如果具有两个以上的维度则被称为多维数组。在Numpy中的多维数组是正常的两维矩阵的延伸。下一节介绍的ones(),zeros()或rand()函数可直接创建多维数组。案例——三维数组生成示例三、创建新数组Numpy除了可以直接创建数组的函数外,还提供了从已有数组的基础上创建数组的函数。1.asarray函数numpy.asarray函数类似numpy.array,可以用来创建数组2.frombuffer函数numpy.frombuffer用于实现动态数组,接受buffer输入参数,以流的形式读入转化成ndarray对象3.fromiter函数numpy.fromiter函数从可迭代对象中建立ndarray对象,返回一维数组4.初始化数组函数数组的初始化就是对其赋初值,也就是向这个数组中装入有意义的数据,在程序设计汇总初始化很重要。案例——使用不同函数创建数组。四、数组的属性创建数组后,可以通过设置数组的属性来实现数组的操作,NumPy的数组中ndarray对象属性见表。numpy的多维数组不仅仅表示三维,还能表示4、5...维。秩,即轴的数量或维度的数量,两行三列的数组,元素个数为2×3=6个,秩为2,表示它有两个维度,第一个维度长度为2,第二个维度长度为3。案例——数组的属性显示示例任务2特殊数组任务引入为了演示程序,小王需要定义大量数据,直接输入数组数据过于繁琐,那么如何解决这一问题呢?20世纪80年代以来,问题解决或者解决问题已成为国际理科教育的一种潮流。经过调查,发现使用特殊数组可以直接定义指定大小的数组。那么,特殊数组有哪些?知识准备在工程计算以及理论分析中,经常会遇到一些特殊的数组,比如全0数组、单位数组、随机数组等。对于这些数组,在Numpy中都有相应的命令可以直接生成。下面我们就介绍一些常用的命令。一、数值数组Numpy提供了一系列元素为同一数值的数组函数,下面分别进行介绍。1.空数组在Numpy中,空数组使用empty命令表示2.全零数组在Numpy中,全零数组使用zeros命令表示3.全一数组在Numpy中,全1数组使用ones命令表示、4.数值数组在Numpy中,使用full函数创建数值数组,该数组元素均为指定数值案例——数组生成示例案例——数值数组生成示例二、随机数组随机数组,顾名思义,随机生成,没有规律,因此每一次生成的随机数组不同。numpy.random模块可方便生成随机数组,返回指定范围内的一个整数或浮点数。1.0到1内随机数组rand和random函数生成[0.0,1.0)之间的随机浮点数数组,size表示数组大小。案例——0到1内随机数组生成示例案例——生成相同随机数组2.指定区间随机数组randint函数用于在指定区间内生成随机整数数组案例——生成随机数组示例三、单位数组在numpy中,eye函数创建指定大小的单位数组案例——单位数组生成示例四、概率分布数组概率分布是指用于表述随机变量取值的概率规律。在自然现象和社会现象中,大量随机变量都服从或近似服从不同种类的分布.例如,一个地区的男性成年人的身高;测量某零件长度的误差,海洋波浪的高度,半导体器件中的热噪声电流或电压等,都服从正态分布。在间隔时间内放射出a粒子的数目服从指数分布。在Python中,Numpy模块的random子模块中包含一些生成服从指定分布随机数组的函数。具体的调用格式见表。案例——生成指定分布数组任务3数组运算任务引入小王定义数组后,下一步是进行数组运算。那么,基本的数组运算有哪些,他们是如何实现的?知识准备数组运算是指数组对应元素之间的运算,也称点运算。矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算。所以数组乘法、乘方和除法的运算符前特别加了一个点。一、数组数学运算1.基本运算数组的基本运算包括加、减、乘、除、乘方、求逆等。与大家所学的线性代数中的定义是一样的,相应的运算符为“+”、“-”、“*”、“\”、“**”。案例——数组基本运算示例2.数组点积对于数组a、b,数组a和b的点积计算公式如下:案例——计算一维数组点积示例
广播的规则如下:如果两个数组的维度数不相同,那么小维度数组的形状将会在最左边补1。如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度扩展以匹配另外一个数组的形状。如果两个数组的形状在任何一个维度上都不匹配,并且没有任何一个维度等于1,会引发异常。关于数组广播的函数见表。案例——不同形状数组运算示例Numpy常用的数学运算函数见表。3.数组的索引在Python中,一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。数组的索引和切片都是对数组元素的引用。4.索引值索引使用下标数组元素引用的方式见表。案例——数组索引示例5.choice函数除了使用索引和切片输出数组元素,NumPy
模块中还提供了choice函数,用于从给定的1维数组中随机采样案例——数组元素输出6.take函数take函数用于沿轴取数组中的元素案例——输出数组元素二、数组元素运算数组是相同数据类型的元素的集合。数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。1.数组排序Numpy的random子模块提供了两种数组排序函数,shuffle函数对原数组进行随机排列;permutation函数返回一个随机排列的数组。案例——数组排序示例2.遍历数组遍历数组是指把数组中的每个数都读一遍,Python提供了两种遍历数组,输出所有元素的方法。(1)一般情况下,使用for循环遍历数组元素。案例——使用for循环输出数组元素。(2)数组迭代NumPy
模块中的nditer提供了一种灵活访问一个或者多个数组元素的方式案例——数组输出示例3.数组元素的增减数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。因为数组元素的下表是从0开始,因此索引i表示数组的第i+1个元素。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。数组元素的增减是最基本的数组元素操作,常用的数组元素的增减命令见表。案例——数组元素操作示例任务4矩阵操作任务引入小王已经了解了数组的运算,但是对于特殊的运算,需要涉及矩阵、向量。那么,矩阵、向量、数组有哪些区别?如何创建矩阵、向量?知识准备矩阵运算是线性代数中极其重要的部分,利用NumPy对矩阵除了进行一些基本的运算,还可以用NumPy求矩阵的逆与转置。一、创建矩阵矩阵只能是二维的,而数组可以是任意维度的,矩阵和数组在数学运算上会有不同的结构。除了维度的不同,矩阵是一个矩阵matrix对象,数组是ndarray对象。矩阵是由m×n个数
(i=1,2,…,m;j=1,2,…,n)排成的m行n列数表,记成1.matrix函数在numpy中,matrix函数用于创建矩阵2.mat函数mat函数用来创建一个矩阵,该函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割案例——生成矩阵示例二、向量运算向量是由
组成的有序数组,记成1.向量生成由有限个向量所组成的向量组可以构成矩阵,如果
是m×n矩阵或数组,那么A有m个n维行向量;有n个m维列向量。案例——向量生成示例2.向量乘法一个行向量乘以一个列向量称作向量的内积,又叫作点积,结果是一个数值;一个列向量乘以一个行向量称作向量的外积,结果是一个矩阵。案例——计算向量点积示例三、统计函数Numpy模块的核心就是基于数组的运算,数组的运算效率是最高的。在统计分析过程中,经常会使用到Numpy模块的函数.Numpy模块用于数理统计的函数是较为简单的,其涉及的数学知识是大家都很熟悉的数据分析,比如求均值与方差等。在数学分析中,在给定范围内(相对极值)或函数的整个域(全局或绝对极值),函数的最大值和最小值被统称为极值(极数)。NumPy中的极值统计函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林大学《民族传统体育概论》2021-2022学年第一学期期末试卷
- 吉林大学《机械工程测试技术》2021-2022学年第一学期期末试卷
- 物业管理消防安全制度
- 高处作业现场安全检查方案
- 五年级科学下册第四单元地球的运动总结素材教科版
- 2024高考化学一轮复习第一章化学物质及其变化第1讲物质的组成分类及性质课时作业含解析
- 2024-2025学年高中英语Unit5FirstaidReading课时作业1新人教版必修5
- 2024年商标许可协议
- 2024年城市基础设施养护政府合同
- 2024年健身房健康检测与指导合同
- 公司电梯安全总监、电梯安全员岗位职责
- 物业保洁员劳务合同2篇
- 国有土地上房屋装修备案申请表
- 二年级上册音乐课件《小红帽》(人音版)
- 2023年中级经济师考试真题及答案
- 重庆建筑工程资料全套表格年
- GB/T 23221-2008烤烟栽培技术规程
- GB/T 18284-2000快速响应矩阵码
- GB/T 16900-2008图形符号表示规则总则
- 辽宁省辽南协作校2022-2023学年高二上学期期末考试语文答案 Word版含解析
- 中职英语统考复习讲课教案
评论
0/150
提交评论