版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python数据分析与可视化案例教程(微课版)notebook版0-Python的数据分析.pptx 1-语法基础.pptx 2-流程控制.pptx 基于Python的数据分析2022-4-10引例学习方法教学法(jupyternotebook)可视化(如饼图)1997年石河子大学数学系学习2001年华北工学院工作(现中北大学)2006年中北大学硕士毕业2012年加拿大YorkUniversity访问学者2013年中北大学博士毕业2014年评为硕导2019年海南医学院工作1997年石河子大学数学系学习2001年中北大学工作(原华北工学院)2012年加拿大YorkUniversity访问学者2019年海南医学院工作6200920132017201820192020202020212022.62022.4对于真正的人工智能而言,最重要的永远是数据,只有拥有完整的数据,人工智能才能真正的发展起来。如果说人工智能是一把宝刀,需要有一块好的磨刀石才能让它更加锐利,而大数据恰好就是这块最好的磨刀石。这也说明,完整的数据对于人工智能多么重要。任何抛开数据谈人工智能的,全都是耍流氓。什么是大数据?大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、
Veracity(真实性)。大数据的那些V浏览网页和网购后的商品推荐什么是数据分析?能分析出什么?算术平均值、几何平均值、平方平均值、调和平均值、加权平均值算术平均值:一组数据中所有数据之和再除以数据的个数。
姓名12345678910111213141516171819202122成绩9998100989910010099981009810098999880171016141512整体平均值是在数据呈均匀分布或者正态分布的情况下才会有意义,如果忽略整个数据的分布情况,只提平均值,其实是没有意义的。球员
表现2分球3分球总投球数投中投中率总投球数投中投中率A25020080.00%50510.00%B1009090.00%1505033.33%球员整体表现总投球数投中投中率A30020568.33%B25014056.00%辛普森悖论
在分组比较中都占优势的一方,有的时候在总评中反而是失势的一方。×结论算术平均值特别敏感,它很容易受到极端数据的影响。整体平均值是在数据均匀分布或者正态分布下才会有意义。辛普森悖论:分组结论和整体平均值结论可能会大相径庭。姓名12345678910111213141516171819202122成绩9998100989910010099981009810098999880171016141512球员整体表现总投球数投中投中率A30020568.33%B25014056.00%为什么是python?Lifeisshort,IneedPython!人生苦短,我用Python。Python除了极少的事情不能做之外,其它基本上可以说全能:Python是当今炙手可热的数据分析工具。Python是一种面向对象的解释型语言;特点是简单易学、免费开源、高层语言、可移植性强、面向对象、可扩展性、可嵌入型、丰富的库、规范的代码等。Python能做什么系统运维、图形处理、科学计算、文本处理、数据库编程、网络编程、web编程、多媒体应用、pymo引擎、黑客编程、爬虫编写、机器学习、人工智能等等。1.Python语言基础语法2.Python数据分析常用类库3.Python爬虫4.数据可视化matplotlib、epycharts数据获取爬取数据部分数据可视化部分数据分析部分关于Python的教学方法建议课件.ipynbmarkdown呈现内容丰富可以保存为html格式可以保存为ipynb格式课堂案例实时更新多使用社会热点关注事件案例机器学习初学者—手把手教你做数字图像识别Kaggle—DigitRecognizer链接:/JosephPai/article/details/78898003120487362ThankYou
ForYourAttention基于Python的数据分析余本国2021-07-271-语法基础1997年石河子大学数学系学习2001年华北工学院工作(现中北大学)2006年中北大学硕士毕业2012年加拿大YorkUniversity访问学者2013年中北大学博士毕业2014年评为硕导2019年海南医学院工作36200920132017201820192020202020212022.62022.4什么是大数据?大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、
Veracity(真实性)。大数据的那些V为什么是python?Lifeisshort,IneedPython!人生苦短,我用Python。Python除了极少的事情不能做之外,其它基本上可以说全能:Python是当今炙手可热的数据分析工具。Python是一种面向对象的解释型语言;特点是简单易学、免费开源、高层语言、可移植性强、面向对象、可扩展性、可嵌入型、丰富的库、规范的代码等。Python能做什么系统运维、图形处理、科学计算、文本处理、数据库编程、网络编程、web编程、多媒体应用、pymo引擎、黑客编程、爬虫编写、机器学习、人工智能等等。关于代码举例演示说明所有code演示案例,请到JupyterNoteBook演示!因为ipynb格式可以有markdown演示文本(群内已提供),可实时演示代码,下课时可导出为html格式发给学生或挂到网上供学生课后复习,便于课堂知识再现。所以本PPT不提供大量的举例。数据清洗一、Python基本语法注释符:#分层次:4空格也可Tab键但不能混用冒号下空四格foriin[1,2,3]:print(i,end=´;´)Ifscore>60:print(´及格´)else:print(´不及格´)>>>print(‘输出显示’)#可以添加参数end=‘;’转义符:\\n\tb=´C:\news\yubg.txt´´C:\\news\\yubg.txt´r´C:\news\yubg.txt´\´引号符:´´´´´´成对使用str单双引号无差异三引号注释多行a=´输出显示´b=´c:\news\yubg.txt´print()函数:用于屏幕输出显示。>>>a=´输出显示´>>>print(“变量a的值为:”,a)变量a的值为:输出显示print()函数可带参数end=´´>>>foriin[1,2,3]:print(i)123>>>>>>foriin[1,2,3]:print(i,end=‘;’)
1;2;3;>>>变量命名规则标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。Python需要使用标识符给变量命名。标识符必须以字母、下画线(_)开头,后面可以跟任意数目的字母、数字和下画线(_)。Python语言是区分大小写的。标识符不能是Python关键字,但可以包含关键字。标识符不能包含空格。注意:此处的字母并不局限于26个英文字母,可以包含中文字符、日文字符等。标识符可以由字母、数字、下画线(_)组成,其中数字不能打头。Python关键字二、字符串strstr定义str就是一串字符,是编程语言中表示文本的数据类型。在Python中可以使用一对引号(单双引号均可)定义一个字符串。可以使用index获取一个str中指定位置的字符,索引计数从0开始。也可以使用for循环遍历字符串中每一个字符。在Python语言中,数据类型分为str、int/float、list、tuple、dict、set。例:a=´teacher´b=´2´#同input()接收到的输入查增删改查[start:stop:step]索引:s=´python´012345-6-5-4-3-2-1index切片:[start:stop][start:stop:step]范围[start:stop)>>>s[2:4]>>>s[1:5:2]#同s[2:4:1]th#
yhstr方法1、统计某字符出现次数:str.count(sub,start=0,end=len(string))可选参数为在字符串搜索的开始与结束位置。>>>a=´teacher´>>>a.count(‘e’)#返回22、检测字符串中是否包含子字符串:str.find(str,beg=0,end=len(string))str–指定检索的字符串beg–开始索引,默认为0。end–结束索引,默认为字符串的长度。如果指定beg(开始)和end(结束)范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。3、检测字符串中是否包含子字符串:str.index(substr)如果指定beg(开始)和end(结束)范围,则检查是否包含在指定范围内.该方法与find()方法一样,只不过如果str不在string中会报一个异常。/marvin_wind/article/details/79903175>>>a='teacher’>>>a.find('ch’)#返回3>>>a='teacher'>>>a.index(‘h’)#返回左到右的第一个,44、字符串中的old字符串替换成new:str.replace(old,new[,max])如果指定第三个参数max,则替换不超过max次。5、字符串分割为列表:str.split(str=
"",num)如果参数num有指定值,则仅分隔num+1个子字符串>>>a='teacher'>>>a.split('e’)['t','ach','r']>>>a='teacher'>>>a.replace('er','or’)'teachor’
>>>a.split('e',1)
['t','acher']注释符用井号#,赋值str型引号找;
单引双引无差异,同时使用要注意;
分层次,用空格,冒号之下空四格;
索引序号从0起,逆序–1也可以.基本语法三、列表list列表是最常用的数据类型,用方括号表示。列表的数据项(元素)不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的元素使用方括号括起来即可。例如:list1=['physics','chemistry',1997,2000]查增删改查查看列表中的元素同str的切片方法。>>>list0=[1,2,3,’py’,’海医’]>>>list0[1:4]增增删改查>>>[1,2,3,’py’].append(‘hn’)>>>[1,2,3,’py’,’hn’]
>>>[1,2,3].insert(2,‘hn’)>>>[1,2,‘hn’,3]
删增删改查
删除list元素有两种方式:>>>[1,2,3,’py’].pop()>>>[1,2,3,2].remove(2)>>>delL[1:2]>>>delL[1:3]>>>delL>>>[1,2,3,’py’].pop(3)>>>L=[1,2,3,’py’]>>>L=[1,2,3,’py’]>>>L=[1,2,3,’py’]改增删改查>>>list0=[1,2,3,’py’,’海医’]>>>list0[4]=’hy’对位置上的元素直接赋值即可修改。[1,2,3,’py’,’hy’]otherStr转化为list:list(str)>>>str_0=’hainan’>>>list(str_0)
['h','a','i','n','a','n']list的排序:sorted(L)>>>L=['h','a','i','n','a','n’]>>>sorted(dd)['a','a','h','i','n','n']>>>L=['h','a','i','n','a','n’]>>>L.sort()>>>L['a','a','h','i','n','n']四、元组tuple元组与列表类似,不同之处在于元组的元素不能修改。tuple使用小括号,list使用方括号。tuple创建在括号中添加元素,并使用逗号隔开。例如:tu1=('physics','chemistry',1997,2000)查增删改查查看tuple中的元素同str的切片方法。tuple好处在于不能被修改,所以list可转化为元组浏览,访问比list快。>>>a=[1,2,3]>>>t=tuple(a)#list转tuple>>>a0=list(t)#tuple转list五、集合set集合(set)是一个无序的不重复元素序列。创建集合用{},元素用逗号隔开。创建一个空集合必须用set()而不是{},{}是用来创建一个空字典。常用它过滤list、tuple等重复值。例如:set1={'physics','chemistry',1997,2000}查增删改查>>>set_0={"a","b","c"}>>>"b"inset_0TrueSet是无序的,故没有index,但要看某元素在不在set中,用in。改增删改查set存储的元素必须是不变对象,故任何可变对象是不能放入set中的。>>>a={"a","b","c"}>>>a={"a","b","c",[1,2]}#会报错增增删改查Set增加元素也有两种方式:
>>>{1,2,’py’}.add(3)>>>{1,2,3}.update({3,4,5}){1,2,3,4,5}删增删改查Set删除元素方式有三:
>>>a={1,2,3,4,”a”,”b”}>>>a.discard(3)>>>a.remove(“b”)>>>a.pop()除了discard()函数外,其他的方法在删除的元素不存在时会报错。otherSet其他操作,如集合的并、交、差等。对称差分:两个集合(s和t)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合s或者集合t的成员,不能同时属于两个集合。函数方法等价方法功能描述s.union(t)s|t合并操作ersection(t)s&t交集操作s.difference(t)s–t差分操作s.symmetric_fifference(t)s^t对称差分操作六、字典dict字典用于存放有映射关系的两组数据。其一组是key,是关键数据,具有唯一性,对字典操作都是基于key;另一组是value,需通过key来访问。字典的元素是一对键值,用冒号:分开,字典同set都使用花括号{}。字典是一种可变容器模型,可存储任意类型对象。但key需为不可变型。例如:dic={‘physics’:35,‘chemistry’:56,‘体育':80,1:’A’}查增删改查Dict同Set无序,故没有index,访问元素需通过key。>>>dic={‘physics’:35,‘chemistry’:56,‘体育':80,1:’A’}>>>dic[‘chemistry’]#返回‘chemistry’所对应的值56改增删改查Dict无序,没有index,但它的key就类似于index。所以访问和修改方法同list,只是将list通过index访问修改,而dict通过key。>>>dic={‘physics’:35,‘chemistry’:56,‘体育':80,1:’A’}>>>dic[‘chemistry’]=60#修改‘chemistry’所对应的值56为60增增删改查Dict增加元素方法有两种:增加一个元素同修改元素一样,当被修改的key不存在时就会自动添加这个元素。两个字典合并使用dict1.update(dict2),如此即将dict2中所有元素追加到了dict1中。>>>a={1:"a",2:"b","c":3}>>>a[3]=5#增加元素>>>a
{1:'a',2:'b','c':3,3:5}>>>b={1:"d",4:"b"}>>>a.update(b)>>>a{1:'d',2:'b','c':3,3:5,4:'b'}注意:当合并的两个字典中有相同的键名但对应的值不同时,会将被合并的元素覆盖掉原来的键值。删增删改查Dict删除方法有四种:
In[1]:aOut[1]:{1:'d',2:'b','c':3,3:5,4:'b’}In[2]:a.pop("c")Out[2]:3In[3]:aOut[3]:{1:'d',2:'b',3:5,4:'b'}In[4]:aOut[4]:{1:'d',2:'b',3:5,4:'b'}In[5]:dela[2]In[6]:aOut[6]:{1:'d',3:5,4:'b'}In[7]:a.popitem()Out[7]:(4,'b')otherdict其他操作,如获取字典的所有键名、键值、键值对等。#获取字典的键值对、字典的值、字典的键
print(dic.items())print(dic.values())print(dic.keys())
#对字典排序
a={1:23,99:2,28:72,3:83,72:222}print(sorted(a))#对字典按照key排序,打印key的list
print(sorted(a.items()))#对字典按照key排序,打印键值对元组,list类型
print(sorted(a.items(),key=lambdax:x[1],reverse=True))
#对字典按照value排序,可以降序或升序,打印键值对元组
[1,3,28,72,99][(1,23),(3,83),(28,72),(72,222),(99,2)][(72,222),(3,83),(28,72),(1,23),(99,2)]七、常用函数针对数据类型,通用的常用函数有type、len、id、copy、help、dir等。type():查看数据类型。len():查看数据的长度(即含有元素的个数)。help():查看数据的用法。自定义函数的说明文档就是通过help查看。id():查看数据存储内存地址。copy():对数据进行复制、拷贝。例:a_2=[1,0,2,”1”,”feel”]type(a_2)len(a_2)id(a_2)b=a_2.copy()id(b)help(a_2)In[3]:id(a_2)Out[3]:2986056682888In[4]:b=a_2.copy()In[5]:id(b)Out[5]:2986061029768In[1]:a_2=[1,0,2,"2","feel"]...:type(a_2)Out[1]:listIn[2]:len(a_2)Out[2]:5注意:如果我们直接赋值:c=a_2id(c)结果会怎么样呢?In[3]:id(a_2)Out[3]:2986056682888In[4]:b=a_2.copy()In[5]:id(b)Out[5]:2986061029768In[7]:c=a_2
...:id(c)Out[7]:2986056682888
In[8]:结论:复制函数不能直接赋值(赋值仅仅是做了一个标签,他们存储地址一致,所以修改任何一个,另一个都会被修改),而需要使用copy函数。help(a_2)......|append(self,object,/)|Appendobjecttotheendofthelist.|clear(self,/)|Removeallitemsfromlist.|copy(self,/)|Returnashallowcopyofthelist.|count(self,value,/)|Returnnumberofoccurrencesofvalue.|extend(self,iterable,/)|Extendlistbyappendingelementsfromtheiterable.|index(self,value,start=0,stop=9223372036854775807,/)|Returnfirstindexofvalue.|RaisesValueErrorifthevalueisnotpresent.|insert(self,index,object,/)|Insertobjectbeforeindex.|pop(self,index=-1,/)|Removeandreturnitematindex(defaultlast).|remove(self,value,/)|Removefirstoccurrenceofvalue.
dir()In[9]:dir(b)Out[9]:......'append','clear','copy','count','extend','index','insert','pop','remove','reverse','sort']……120487362ThankYou
ForYourAttention基于Python的数据分析余本国2020-12-192-流程控制关于代码举例演示说明所有code演示案例,请到JupyterNoteBook演示!因为ipynb格式可以有markdown演示文本(913427877群内已提供),可实时演示代码,下课时可导出为html格式发给学生或挂到网上供学生课后复习,便于课堂知识再现。所以本PPT不提供大量的举例。即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构分支结构(if)循环结构(while与for)流程控制一、顺序结构在Python语言中,顺序结构就是按照代码的前后顺序按行执行。height=1.80weight=75.5bmi=weight/height**2print("BMI指数",bmi)例如:计算BMI指数并判断胖瘦程度。【身体质量指数BMI】成人标准值是BMI18.5-23.9才算标准体重。
计算公式:体重(Kg)/身高(m)的平方分类BMI范围
偏瘦
<=18.4
正常18.5~23.9
过重24.0~27.9
肥胖>=28.0二、选择结构if分支结构就是根据满足的条件去执行相应的动作,即根据条件判断的真假去执行不同分支对应的子代码。if
仅一个单独的if判断语句if/else
两种情况的分支结构if/elif/else
多种情况的分支结构if条件表达式:代码块if条件表达式:代码块else:代码块if条件表达式1:代码块1elif条件表达式2:代码块2elif...:.....else:代码块3注意:条件可以是任意表达式,但执行结果必须为布尔类型None,0,空(空字符串,空列表,空字典等)三种的布尔值为False其余均为True三、循环结构for循环结构就是重复执行某段代码。for循环主要是将某个序列(string、list、tuple、set、dict等)内的所有元素都执行其下的相同的操作,故也称为遍历。for变量名in序列:代码块格式如下:j='a'for
i
in['a','b','c']:
h=j+i
print(h)
aaabac四、循环结构while/2722127842qq-123/p/12447793.html
while循环则是符合条件就执行其下的代码操作,执行完再回到while行进行判断是否还满足,满足则再次执行其下代码,如此循环往复,直至不满足为止。while循环的基本使用break的使用continue的使用name=input('pleaseinputyourname:')whilename!=
'yubg':
print('You\'rewrong!Plsagain!')name=input('Inputyournameagain:')Print('Sonice!')四、pass、break、continuelis=[]whileTrue:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《索具套环》规范
- 安全专业软件相关行业投资规划报告
- 非离子型纤维素醚相关行业投资规划报告
- 两家宅基地界线协议书
- 顺行髓内钉治疗掌骨颈骨折
- 灯光培训资料
- 智慧医院综合管理解决方案(医院综合管控指挥)
- 食品中毒应急预案
- 老年病科急救演练
- 药店药师的角色与职责
- 眼角膜炎的治疗药物
- 利用人工智能促进中小学教师专业发展
- 药店医保服务管理制度
- 新能源与航空航天技术的结合
- 中国银行交易流水明细清单
- 通勤车租赁投标方案(技术标)
- 如何提高数学课堂的教学效率
- 第九章德国新闻事业史(一)九章德国新闻事业史(一)第九章德国新闻事业史(一)第九章德国新闻事业史(一)
- 建筑企业宣传册ppt
- 建筑电气与智能化专业大学生职业生涯规划书
- 教育舆情报告2023
评论
0/150
提交评论