版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能通识(理工科)北京科技大主要内容计算机软件与程序程序的执行过程Python程序语言概述Python程序中的数据表示与计算Python程序中的控制结构Python程序中的数据组织与处理Matplotlib进行绘图使用算法求解问题2.1计算机软件与程序软件:程序+文档+数据系统软件:
用来管理、维护计算机并协调计算机各部件有效工作,支持应用软件开发和运行的系统。应用软件:
实现具体应用的软件。软件操作系统硬件应用软件用户输入设备:键盘、鼠标、扫描仪等输出设备:显示器、打印机、绘图仪等外存:软盘、硬盘、光盘、U盘等
计算机系统软件外部设备系统软件硬件运算器控制器主机内存CPU随机存储器(RAM)只读存储器(ROM)操作系统:Windows、Unix、Linux编译解释程序:C、C++、Java、Python等数据库管理系统:SQLServer、Oracle服务程序:诊断程序、排错程序等应用软件办公软件包、人事管理软件、财务管理软件、工业实时控制软件、图像处理软件、聊天软件计算机系统的组成计算机软件系统指令:计算机能够识别并执行的“操作命令”。15→A
指令=操作码+操作数例:1011000000001111操作码(OP)操作数(OD)……操作数(OD)操作数(OD)指令系统:计算机能够识别的所有指令的集合。不同类型的计算机所识别的指令和指令系统是不一样的。面向机器,通用性差。计算机语言机器语言:计算机能唯一识别并可直接执行的语言,由二进制数(0或1)排列组合而成。汇编语言:用一些助记符表示指令功能的计算机语言,和机器语言基本上是一一对应的,更便于记忆。高级语言:同自然语言和数学语言比较接近的计算机程序设计语言,其表达方式更接近人们对求解过程或问题的描述方式,而且与具体的计算机指令系统无关。指令举例机器语言指令:1011000000001111
15→累加器A
0010110000001010
10+A→A
11110100结束,停机汇编语言语句:MOVA,1515→累加器AADDA,1010+A→AHLT暂停C语言语句:A=15
15→AA=A+10
15+10→A
return
结束,返回计算机语言计算机语言的发展历程MOVA,15ADDA,10汇编语言A=15A=A+10高级语言10110000000011110010110000001010机器语言执行效率高低可读性,通用性低高2.2程序的执行过程编译的方式可执行程序.EXE编译程序高级语言程序目标程序.OBJ/.O链接程序机器指令组成C/C++机器指令链接程序:将目标程序和所使用的库函数的目标程序等链接生成一个可执行文件#include"stdio.h"#include"stdlib.h"
intmain(){
printf("helloworld\n");
system("pause");}printf()函数所在目标程序system()函数所在目标程序hello.c程序的执行--编译#include"stdio.h"#include"stdlib.h"
intmain(){
printf("helloworld\n");
system("pause");}双击可以执行编译链接***.o汇编的存在.C程序汇编代码机器码给程序员看的机器码程序的执行--解释逐句读入源代码,逐句解释给出结果机器指令解释程序高级语言程序Python运行期检查源代码错误保留源代码,易于调试良好的跨平台可移植性Python解释器的工作字节码文件.pyc机器码编译与平台无关的中间代码解释执行Python源文件.py解析抽象语法树AST为了提高执行效率,CPython解释器包含一些优化机制字节码缓存:将编译后的字节码
.pyc
文件缓存到__pycache__目录中,避免重复解析和编译内置函数优化:CPython解释器对内置函数和标准库进行了高度优化,许多功能直接调用底层C实现以提高性能CPython:使用C语言编写,最常用的Python解释器(python.exe)应用程序执行的过程操作系统翻译机器指令某种CPU的指令集应用程序高级语言程序管理控制分配资源CPU各个操作系统不同,如何确定系统调用接口(调用谁、怎么调)?硬件与操作系统绑定好应用程序执行的过程2.3Python程序语言概述简单明确优雅Python是一种解释型的、面向对象的、交互式的高级程序设计语言拥有传统编译型程序语言所有强大通用的功能拥有简单脚本语言和解释型程序语言的易用性Python格言优美胜于丑陋明了胜于晦涩简单胜于复杂Python优点WhyPython?简单易学:Python是一种简单易学易用的语言,专注于解决问题而不是去搞明白语言本身。Python语言摒弃了C的复杂指针和数据类型。开发效率高:Python是一种胶水语言,可以和C、C++、Java、PHP、JS等进行组合,发挥各种工具的优势。免费、开源:Python是自由/开放源码软件之一,使用者可以自由地拷贝、阅读源代码、做改动等。跨平台:可以在多种平台下运行丰富的标准库:编程者想编写的程序,绝大多数已有现成实现,直接取用即可Python应用领域你可以在任何场合应用Python,
从网站、游戏开发、机器人、航天飞机控制……数值计算和科学计算人工智能数据开发系统编程系统维护工具用户图形接口Web开发Google
在网络搜索系统中广泛应用了Python
YouTube
视频分享服务大部分是由Python
编写的Intel
、Cisco
、HP
、Seagate
、Qualcomm
和IBM
使用Python
进行硬件测试NASA
、Los
Alamos
、Fermilab
、JPL
等使用Python
实现科学计算任务Industrial
Light
&
Magic
、Pixar
等公司使用Python
制作动画电影……Pythons
success
story
/about/success/2.4Python程序中的数据表示与计算计算机处理的数据可以是数值型和非数值型。计算机编程语言中,按编码方式与取值范围等不同,数值型数据又分为多种不同类型,包括整型和浮点型等。非数值型数据包括文本、声音、图像等。使用Python编程语言进行应用程序开发,首先应明确不同类型的数据在编程语言中的表示。2.4.1程序中的标识符【例2-1】绘制正方形程序改进。importturtle
redTurtle=turtle.Turtle()
redTurtle.width(5)
redTurtle.speed(5)color="red"
redTurtle.color(color)#设置颜色
redTurtle.forward(100)
redTurtle.right(90)#右转90度redTurtle.forward(100)
redTurtle.right(90)#右转90度color="blue"
redTurtle.color(color)#设置颜色
redTurtle.forward(100)
redTurtle.right(90)#右转90度redTurtle.forward(100)
redTurtle.right(90)#右转90度
turtle.done()用户编程时使用标识符,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。标识符通常由字母和数字以及下划线构成。标识符命名规则标识符是由字符(A~Z和a~z)、下划线和数字组成,但第一个字符不能是数字。Python中的标识符中,不能包含空格、@、%以及$等特殊字符。Python中,标识符中的字母是严格区分大小写的Python语言中,以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。标识符标识符有关键字和用户自定义标识符两种关键字又称保留字,关键字就是在Python内部已经使用的标识符,已被语言本身使用,具有指定的含义和使用方法,不能作其它用途使用。>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']用户自定义标识符是编程者根据自己的程序需要定义的标识符,不能是关键字。2.4.2程序中的常量常量是程序在运行的期间不能够被改变的量,有其固定的表示形式,这与其数据类型有关。常量有字面值常量(字面量)和自定义常量两种。字面值常量(字面量):指直接出现在代码中、可被解释器直接识别的固定值,无需预先定义即可使用。其特点是“即写即用”,值在代码中直接体现,无法被修改。例如:99,4.5,“Python”,‘hello’,True,False自定义常量:通过特定语法或约定定义的、具有名称的常量,用于表示在程序生命周期中不应改变的固定值。通常用全大写名称表示(如MIN_AGE=6)。数值数据数值数据,包括整数、带有小数点的浮点数和复数等,例如99,1.65,21.,.123整型(int)通常被称为是整型或整数,是正或负整数,不带小数点,可以使用下划线分割数字。浮点型(float)浮点数由整数部分与小数部分组成小数点的形式:22.1,35.,.0科学计数法:2.5e2表示2.5乘以102,其中2.5是尾数,2是指数。复数(complex)复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。字符与字符串
字符分为非空白字符(例如,"a")和空白字符(制表符tab、空格和换回车)。字符串是不可变的多个字符构成的序列。用单引号、双引号或三引号来定界。例如:‘Python’、“Hello”、‘@’、'''Python'''Python中的字符型数据没有字符和字符串之分,只有字符串布尔型数据布尔型(bool),只有True和False两个。Python是大小写敏感的语言,True和False的首字母一定要大写。2.4.3程序中的变量变量的定义形式:
变量名=值例:color="red"变量的命名规则变量名由两个或多个单词组成时,每个单词都应使用小写字母,并且单词与单词之间用下划线连接。如:first_name。驼峰命名法:变量名由两个或多个单词组成时,还可以使用驼峰命名法来命名。小驼峰式命名法第一个单词以小写字母开始,后续单词的首字母大写。如:firstName。大驼峰式命名法每一个单词的首字母都大写。如:FirstName。变量的类型在Python中,定义变量是不需要指定数据类型的。但Python本身是有数据类型的,它的数据类型也可分为数值型和非数值型。数值型,也与常量类型一致,包括,整型(int),浮点型(float),布尔(bool,非零即真)和复数型(complex)。非数值型,包括字符串和python自带的一些数据类型,列表,元组和字典。不同类型变量之间转换Python程序中,数值型变量之间是可以直接计算的,可以进行自动类型转换,默认向更高精度转换,数据类型精度从低到高依次为:类型转换函数实现强制类型转换,例如,int(x)将x转换为一个整型,float(x)将x转换为一个浮点型。在进行计算时,布尔值True被当作1,而False被当作0来处理。boolintfloatcomplex变量操作
使用id()函数来查看变量的内存地址。每个变量的内存地址不同,都有唯一的id。使用is来判断两个值是不是属于同一个内存空间,即内存地址是否相同。使用==来判断值是否相等,与is的用法是不同的。使用input()函数来读取从键盘输入的数据,可以根据需要加入可选的提示性文字。使用eval()函数执行一个字符串表达式,返回表达式的值。算术运算用于基本数学计算。加法(+)、减法(-)和乘法(*)、除法(/):其功能与数学定义相同。整除(//):用于执行整数除法,结果会被舍入到最接近的整数,向下取整。求余(%):用于计算两个数值相除后的余数。幂运算(**):用于计算两个数的幂运算。Pa=5b=3print(a+b)#结果是8print(a-b)#结果是2print(a*b)#结果是15print(a/b)#结果是1.6666666666666667(浮点数)print(a//b)#结果是1print(a%b)#结果是2print(a**b)#结果是125(5的3次方)基本运算-算术运算:基本运算-比较运算基本运算-逻辑运算
基本运算-字符串基本运算
Python程序中,字符串运算功能非常强大,能够轻松表示和处理文本数据及应对各种自然语言处理任务。字符串是一种组合数据类型,支持多种运算和操作,包括连接、复制、索引、切片以及一些内置函数。字符串连接(+):用于将两个字符串拼接在一起。字符串复制(*):用于将字符串复制指定的次数。字符串索引:字符串是一种序列数据类型,可以使用索引访问字符串中的单个字符。字符串切片:切片用于提取字符串中的一部分,可以通过指定起始和结束索引实现。Python字符串运算代码示例如下:str1="Hello,"str2="world!"print(str1+str2)#输出"Hello,world!"str1="Hello,"print(str1*2)#输出"Hello,Hello,"str1="Hello,"print(str1[1])#输出'e'print(str1[0:5])#输出"Hello"2.4.5turtle绘图综合案例【例2-2】利用turtle绘制一个太极图。步骤一:绘制白色的鱼步骤二:绘制白鱼中黑色鱼眼步骤三:绘制黑色的鱼步骤四:绘制黑鱼中白色鱼眼turtle绘图综合案例步骤一:绘制白色的鱼fromturtleimport*#引入turtle函数库#定义画半个太极图的函数,第一个参数radius是大圆的半径,setup(500,500)#设置窗口或者画板大小#绘制白色一半width(3)#设置画笔粗细radius=200#设置画笔颜色和填充颜色#penColor,fillColor分别是画笔颜色和填充颜色,在黑白两种颜色中变化填充fillColor="white"fillcolor(fillColor)turtle绘图综合案例步骤一:绘制白色的鱼(续)begin_fill()#准备开始填充图形#首先画一个半径为radius/2,弧度为180的半圆circle(radius/2,180)#画一个半径为radius,弧度为180的半圆circle(radius,180)left(180)#将画笔方向旋转180度#画一个半径为radius/2,弧度为180的半圆,此时半径值为负,#圆心在画笔的右边circle(-radius/2,180)end_fill()#结束填充#画笔向左旋转90度,正好指向画板上方left(90)turtle绘图综合案例步骤二:绘制白鱼中黑色鱼眼up()#抬起画笔,再运动时不会留下痕迹#向前移动radius*0.35,这样小圆边线距离大圆边线上下各radius*0.35,#小圆的半径就为radius*0.15forward(radius*0.35)#画笔向右旋转90度,指向画板右侧right(90)down()#放下画笔#设置画笔颜色和填充颜色fillColor="black"fillcolor(fillColor)turtle绘图综合案例步骤二:绘制白鱼中黑色鱼眼#开始画内嵌小圆begin_fill()circle(radius*0.15)end_fill()#旋转画笔90度,指向画板上方left(90)up()#后退radius*0.35backward(radius*0.35)down()#旋转画笔90度,指向画板左方left(90)2.5Python程序中的控制结构控制结构概述顺序结构分支结构循环结构控制结构嵌套程序中的函数和模块 程序由三种基本结构组成:顺序结构,分支结构和循环结构。顺序结构流程图分支结构流程图循环结构流程图2.5.1控制结构概述2.5.2顺序结构顺序结构按照代码书写的顺序执行程序,书写的语句顺序发生变化,程序运行结果就会不同。【例2-3】改变运笔顺序重写太极图程序importturtle
t=turtle.Turtle()
fillColor='black'
t.width(3)
t.penup()
t.goto(0,-100)#设置起始坐标
t.pendown()
t.begin_fill()
t.fillcolor(fillColor)
t.circle(150,extent=180)#第二个参数是extent。是圆心角的大小,为180
t.circle(75,extent=180)#半径正负代表逆时针和顺时针画
t.circle(-75,extent=180)顺序结构例子【例2-3】改变运笔顺序重写太极图程序(续)t.end_fill()
t.circle(-150,extent=180)
t.penup()
t.goto(0,-50)
t.pendown()
t.begin_fill()
t.circle(30,extent=360)
t.end_fill()
t.penup()
t.goto(0,110)
t.pendown()
fillColor='white'
t.begin_fill()
t.fillcolor(fillColor)
t.circle(30,extent=360)
t.end_fill()
t.ht()
turtle.done()2.5.3分支结构python分支结构分为单分支结构、二分支结构、多分支结构、条件判断及组合以及程序的异常处理。1.单分支结构
单分支结构语法:if<条件>: <语句块>fromturtleimport*backgroundColor="red"ifbackgroundColor=="red":bgcolor(backgroundColor)width(5)pencolor("blue")circle(100)done()2.双分支结构双分支结构语法:if<条件>: <语句块1>else: <语句块2>双分支紧凑形式,适用于语句块可以一个表达式来描述的分支结构语法:<表达式语句1>if<条件>else<表达式语句2>双分支结构程序示例fromturtleimport*backgroundColor="red"bgcolor(backgroundColor)width(5)ifbackgroundColor=="black":pencolor("blue")else:pencolor("white")circle(100)done()pencolor("blue")ifbackgroundColor=="black"elsepencolor("white")3.多分支结构
多分支结构语法:if<条件1>:<语句块1>elif<条件2>:<语句块2>else:<语句块3>多分支结构程序示例fromturtleimport*backgroundColor="red"width(5)bgcolor(backgroundColor)ifbackgroundColor=="black":pencolor(penColor)elifbackgroundColor=="blue":pencolor("white")else:pencolor("black")circle(100)done()2.5.4循环结构1.遍历循环遍历循环是对某一个数据存储结构进行遍历形成的循环运行方式。语法:for<循环变量>in<遍历结构>: <语句块>【例2-4】应用计数循环对例2-1重复语句进行简化。importturtleturtle.width(5)turtle.speed(5)turtle.color("red")#设置颜色foriinrange(4):turtle.forward(100)turtle.right(90)#右转90度turtle.ht()turtle.done()2.While循环
While循环是由条件控制的循环运行方式。语法:while<条件>: <语句块>【例2-5】应用while循环对重复语句进行简化。importturtleturtle.width(5)turtle.speed(5)turtle.color("red")#设置颜色i=0whilei<4:turtle.forward(100)turtle.right(90)#右转90度
i=i+1turtle.ht()turtle.done()3.跳出循环控制关键字
Python中有两个控制循环执行跳转的关键字:break和continue,可以和for和while循环搭配使用break跳出并结束当前整个循环,执行循环后的语句。continue结束当次循环,继续执行后续次数循环。【例2-6】应用break控制循环结构。importturtleturtle.width(5)turtle.speed(2)turtle.color("red")#设置颜色i=0while1:ifi>=4:breakturtle.forward(100)turtle.right(90)#右转90度
i=i+1turtle.ht()turtle.done()break【例2-7】应用continue控制循环结构。importturtleturtle.width(5)turtle.speed(2)turtle.color("red")#设置颜色i=0while1:ifi>=4:continueturtle.forward(100)turtle.right(90)#右转90度i=i+1turtle.ht()turtle.done()continue4.循环的扩展for循环扩展:for<变量>in<遍历结构>: <语句块1>else: <语句块2>当循环没有通过break语句退出时,执行else语句块。else语句块作为“正常”完成循环,即控制for和while语句中控制条件不成立时,要运行的语句块。while循环扩展:while<条件>:<语句块1>else:<语句块2>【例2-8】使用循环结构控制进行turtle图形绘制fromturtleimport*speed(60)foriinrange(180):forward(i)width(i/90)left(60)#left(61)ht()done()2.5.5控制结构嵌套【例2-9】绘制多彩正方形。在例2-4的绘制正方形代码中加入一个分支判断,根据循环变量取值,调整画笔颜色即可。可以画出左右变为蓝色,上、下边为红色正方形。importturtlepen=turtle.Turtle()pen.width(5)pen.speed(5)foriinrange(4):ifi%2==0:color="red"#取一种颜色else:color="blue"#取另一种颜色pen.color(color)pen.forward(100)pen.right(90)#右转90度turtle.done()控制结构嵌套【例2-10】使用两层循环的嵌套绘制大正方形的边角为小正方的图形importturtleturtle.width(5)turtle.speed(2)turtle.color("red")turtle.left(135)#右转45度turtle.penup()turtle.goto(50,0)turtle.pendown()foriinrange(4):turtle.forward(100)turtle.right(90)forjinrange(2):turtle.forward(30)turtle.right(90)#右转90度
turtle.ht()turtle.done()控制结构嵌套2.5.6程序中的函数和模块1.函数函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。自定义函数定义语法:def函数名(<参数1>,<参数2>,…):
函数体
return[返回值]函数代码块以def关键词开头,后接函数名标识符和圆括号(),圆括号中是参数列表,形式是一系列变量或python结构,功能接收传入函数的的数据,通常称这些变量为形式参数,其个数顺序应该与调用时传递过来的实际参数数据一致。注意与控制一样后面的冒号是语法要求,函数体部分要求缩进。return[表达式]结束函数,选择性地返回一个值给调用的地方。不带表达式的return相当于返回None。5.3.5程序中的函数和模块【例2-11】使用函数在一个画布上绘制多个图形。importturtlet=turtle.Pen()t.speed(30)turtle.bgcolor("black")defdraw(color,sides,num):forxinrange(num):t.pencolor(color)t.forward(x*3/sides+x)t.left(360/sides+1)t.width(x*sides/200)defmov(x,y):t.penup()t.goto(x,y)t.pendown()draw("gold",1.66,80)mov(-150,150)draw"magenta",2,100)mov(-150,-150)draw("pink",3,100)mov(160,-160)draw("seashell",4,80)mov(160,160)draw("white",5,80)t.ht()turtle.done()5.3.5程序中的函数和模块2.模块为了编写可维护的代码,把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块,文件名就是模块名。模块一旦被调用,就相当于执行了另一个py文件里的代码。使用模块,可以提高代码的可维护性,而且方便被其他地方引用,通过使用模块还可以避免函数名和变量名冲突。2.6Python程序中的数据组织与处理Python中常用数据结构 简单算法 2.6.1Python中常用数据结构数据结构是指数据的组织和存储形式。合适的数据结构可以带来更高的程序运行效率和数据存储效率,也可能使得问题求解过程更为简便。Python中基本数据结构包括数元组、列表、集合和字典等。通过这些数据结构,使用者可以方便实现其它复杂的数据结构。列表list=[<元素1>,<元素2>,<元素3>,……],用中括号。列表中每个数据称为一个元素,元素是有序的,可变的,每个元素都有一个索引,从0开始,用来标记和使用各个元素,如:list[0],list[1],list[2]。
列表中的元素可以容纳Python的任何对象。列表有内部的增、删、改、查元素的方法。列表访问访问列表中元素时采用索引形式la[0]365la[-1]Truelb[1]2lb[-1]Ia,即[365,'everyday',0.618,True]lb[4][0]365如:la=[365,'everyday',0.618,True]lb=[1,2,3,4,la]列表操作列表操作功能<list>.append(x)将元素x增加到列表的最后<list>.remove(x)删除列表中第一次出现的元素x<list>.reverse()将序列元素反转<list>.sort()将列表元素排序<list>.index(x)返回第一次出现元素x的索引值列表的基本运算
连接两个列表+对列表进行整数次重复*列表中元素个数len()成员存在检查<expr>in/notin<list>列表元素遍历for<var>in<list>:la=[1,2,3]lb=['a','b','c']【例2-12】一维列表遍历打印彩色螺旋图。importturtlet=turtle.Pen()turtle.tracer(False)#不显示绘图过程colors=["red","green","blue","orange","purple"]forxinrange(200):t.pencolor(colors[x%5])t.forward(x)t.left(71)t.width(x/100+1)元组
tuple=(<元素1>,<元素2>,<元素3>,……),用小括号。Python中的元组与列表类似,不同之处在于元组不可修改,类似于字面量的列表,因此在元组中不可以使用列表中的增删改的方法,但是可以对元组中的元素进行索引,操作形式与列表相似。字典
dict={<键1:值1>,<键2:值2>……},用大括号。字典数据结构与日常使用的字典一样,通过“键值->数据值"来构建,在Python中每个元素都是带有冒号的键值与数据值的对应关系,习惯称之为键值对。字典中的元素必须是键值对的形式。键(key)不可以重复,而值(value)可以重复;键不可变,无法修改;值可以修改,可以是任何对象。字典中没有像列表那样的insert()方法,但是可以插入元素,元素默认插入在最后一个位置。如:dictColor={'A':"white",'B':"red",'C':"black",'D':"pink"}dictColor["E"]="yellow"集合
set={<元素1>,<元素2>,<元素3>,……},用大括号。集合的概念有点接近数学上的集合。每个集合中的元素是任何Python对象,但是是无序的、不重复的。2.6.2简单算法1.
插入排序插入排序是一种直观的排序算法。每次从未排好序的数据取数,将其在已排好序的数据中插入,插入的过程是从已排好序的数据末尾向前依次比较,比其小则交换后继续向前比较,否则,不交换,直至此次排序结束。重复前面过程,直到所有元素都插入完成为止。使用Python列表和双层循环结构,插入排序代码如下:li=[4,5,1,2,3,4,8]foriinrange(1,len(li)):x=li[i]j=iwhilej>0andli[j-1]>x:li[j]=li[j-1]j-=1li[j]=xprint(li)简单算法-选择排序选择排序是表现最稳定的排序算法之一。以升序排列为例,首先在未排序数据中找到最小元素,存放到排序数据的起始位置,然后,再从剩余未排序数据中继续寻找最小元素,放到已排序数据的后面。以此类推,直到所有数据均排序完毕。选择排序的Python实现代码如下:li=[4,5,1,2,3,4,8]foriinrange(len(li)-1):forjinrange(i+1,len(li)):ifli[i]>li[j]:li[i],li[j]=li[j],li[i]print(li)2.7使用Matplotlib进行绘图Matplotlib是Python中经典的绘图库,广泛用于数据可视化。2.7.1Matplotlib绘图的基本步骤使用Matplotlib绘制的图形包含几个基本部分,分别如下:Figure(图形):指整个图表的区域,包含所有的内容(图形、标题、坐标轴等)。Axes(坐标轴):每个图形可以有一个或多个坐标轴。Ticks(刻度):坐标轴上的标记,表示数据的不同取值。Legends(图例):用于标识图形中的不同数据系列,帮助用户理解图示。Matplotlib绘图过程通常有几个基本步骤:准备数据:使用NumPy或其他数据处理工具生成数据。创建图形:使用plt.figure()创建一个新的图形。绘制图形:用plt.plot(),plt.scatter(),plt.bar()等功能来绘制不同风格的图形。自定义图形:添加标题、坐标轴标签、图例等,增强可读性。显示或保存图形:通过plt.show()展示图形,或使用plt.savefig()保存到磁盘上以文件存储。2.7.2Matplotlib常见图形类型折线图(LinePlot)折线图是最常用的可视化形式之一,适合展示数据的变化趋势。【例2-13】基于Matplotlib绘制正弦函数图形。使用numpy.linspace()函数生成一组从0到10的等间距的数值共100个点,作为x轴的坐标。利用NumPy的np.sin()数计算每个x值对应的正弦值,结果存储在y列表。Python代码如下:importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0,10,100)#生成从0到10的100个数值y=np.sin(x)#计算x的正弦值'''使用matplotlib.pyplot.plot()函数绘制x和y的折线图。plt.plot(x,y)会自动连接每个点,形成连续的曲线,展示正弦波形。'''plt.plot(x,y)#绘制折线图plt.title('SinFunction')#设置图形标题为“SinFunction”plt.xlabel('X-axis')#为轴添加标签plt.ylabel('Y-axis')#为Y轴添加标签plt.grid()#添加网格线plt.show()#显示绘制的图形散点图(ScatterPlot)
【例2-14】基于Matplotlib绘制散点图。散点图用于展示两个变量之间的分布关系。生成x和y均在[0,1]范围内随机生成的数值。通过散点图,可以观察数据的分布以及可能的相关性或趋势。Python代码如下:x=np.random.rand(50)#生成50个0到1之间的随机数
y=np.random.rand(50)plt.scatter(x,y)#绘制散点图
plt.title('ScatterPlotExample')plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.show()柱状图(BarChart)
【例2-15】基于Matplotlib绘制柱状图。柱状图可用于比较不同类别数据大小。绘制一个简单的柱状图,用来可视化四个类别(A、B、C、D)与相应数值(4、7、1、8)之间的关系,可以直观地对比不同类别对应数值大小。Python代码如下:categories=['A','B','C','D']values=[4,7,1,8]plt.bar(categories,values,width=0.4)#绘制柱状图plt.title('BarChartExample')plt.ylabel('Values')plt.show()2.7.3基于Matplotlib绘制工业振动信号
振动信号是监控和分析工业设备运行状态的关键数据。通过对信号的可视化展示及分析,可以及时发现设备异常,预防故障并提高安全性。【例2-16】模拟生成工业振动信号并基于Matplotlib绘图实现可视化。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年飞行服务站飞行数据统计分析报告编制
- 2026年重点场所多语种标识行李寄存境外旅客引导服务台设置规范
- 2026年深海冷泉热液生态系统微生物多样性调查指南
- 2026年海洋糖库酶库天然产物三维结构数据库共建共享
- 2026年首架航空器生产试飞特许飞行证申请流程
- 2026广东河源市消防救援支队第一批政府专职消防员招聘127人备考题库含完整答案详解【必刷】
- 2026浙江宁波逸东诺富特酒店招聘1人备考题库附答案详解【黄金题型】
- 2026年田块整治灌溉排水田间道路农田防护输配电标准应用实务
- 2026云南玉溪易门县教育体育局招聘后勤辅助人员10人备考题库带答案详解ab卷
- 2026年大模型私有化访问控制权限管理安全策略
- 2026青海海东公安招录32名人民警察备考题库及答案详解(夺冠系列)
- 2026西藏自治区教育考试院招聘非编工作人员11人备考考试题库及答案解析
- 2026年政府采购培训试题200道及参考答案【新】
- 家长安全培训内容文案课件
- 肿瘤学课件教学
- 高级程序设计题库及答案
- 2026年2月1日执行的《行政执法监督条例》解读课件
- 天天刷牙课件
- 2026年高考数学复习难题速递之圆锥曲线综合(2025年11月)
- 2025年《城市居民委员会组织法》知识考试题库及答案解析
- 自闭症专业毕业论文
评论
0/150
提交评论