Python数据分析、挖掘与可视化478_第1页
Python数据分析、挖掘与可视化478_第2页
Python数据分析、挖掘与可视化478_第3页
Python数据分析、挖掘与可视化478_第4页
Python数据分析、挖掘与可视化478_第5页
已阅读5页,还剩473页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python数据分析、挖掘与可视化PythonDataAnalysis、MiningandVisualization01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述了解当前Python基础知识;掌握大数据分析流程及应用工具;掌握不同系统平台下Python开发环境搭建;熟悉Python集成开发平台及常用库;实现基本的Python在移动终端、嵌入式开发的步骤和方法;实现Python在Anaconda中的基本程序开发;本章学习目标(知识要点)01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述Python起源Python最早起源于ABC语言,在1989年由GuidovanRossum发明,它是一门跨平台的可解释性编程语言,有时也称其高级动态编程语言或脚本语言。它结合了C、Unixshell和ABC语言的特点,以程序、面向对象、功能等方式运行于Windows、Linux、Mac、Unix、Solaris等系统平台,广泛应用于Web开发、软件开发、复杂科学计算及统计、云计算、人工智能、网络爬虫等领域。Python版本发展历史1989年由荷兰人GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。Python2.4–2004年11月,同年诞生了目前最流行的WEB框架Django。Python2.7–2010年3月发行Python3.0–2008年12月发行Python2.7.18–2020年4月发行(Python2时代结束,不再更新)Python3.9.0a6–2020年4月28日发行1.1Python概述1.1Python概述Python语言特点Python是完全面向对象的语言,语言具有简洁、易读、可扩展、可嵌入的特点,其函数、模块、数字、字符串等都为对象,支持继承、重载、派生、多继承、重载运算符、动态类型。Python具有丰富的API、工具(PyGTK、PyQt、wxPython、PyOpenGL等)和第三方库,使用Python可将其他语言编写的程序进行集成和封装,以此来编写扩充模块。Python基本语法变量:在Python中变量名称区分大小写,变量命名需要满足规则:变量名必须以字母或下划线字符开头变量名称不能以数字开头变量名只能包含字母数字字符和下划线(A-z、0-9和_)变量名称区分大小写(如:na、Na、NA分别是三个不同的变量)注释和代码块:在Python中注释以#开头,Python将其余部分作为注释;代码块则是通过使用缩进(代码行开头的空格)来进行标示。数据类型:包含数值类型、文本类型、布尔类型、二进制类型、序列类型、集合类型和映射类型1.1Python概述数值类型文本类型布尔类型二进制类型序列类型集合类型映射类型int,float,complexstrboolbytes,bytearray,memoryviewlist,tuple,rangeset,frozensetdict01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述数据采集技术围绕Python的数据采集技术有爬虫框架Scrapy、HTTP工具包Urlib2、HTML解析工具BeautifulSoup、XML解析器lxml等。对于Urlib2包,可以通过使用ulropen()和urlretrieve()的方法,实现数据分别爬到内存和爬到硬盘文件功能。如使用命令:BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库,应用需要导入bs4包。同样,lxml也是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,除了Python标准库中自带了lxml模块之外,还有Cython实现的第三方库lxml,增加了很多功能应用于爬虫处理网页数据。1.2.1Python与大数据技术#命令行下使用pip安装pipinstallscrapy#anaconda下使用

conda

安装condainstall-cconda-forgescrapy数据预处理技术在数据预处理中,常用的框架有:ApacheHadoop、ApacheStorm、ApacheSamza、ApacheSpark、ApacheFlink等,它们处理数据的模式可以分为批处理、流处理、混合处理三种模式,涉及到MapReduce、HDFS、Stream等技术数据预处理的流程,一般包含导入所需的库、导入数据集、处理缺失的数据、编码分类数据、将数据集拆分为测试集和训练集。其流程如下图所示1.2.1Python与大数据技术数据预处理技术Python提供了一些数据预处理的库如Numpy、Pandas、sklearn等,完成数据的标准化处理、归一化、二值化、标记编码、数据集拆分等处理操作Numpy库用于数学函数、科学计算

Pandas用于导入和管理数据集sklearn.preprocessing库用于数据前期处理sklearn.model_selection库的train_test_split方法用于数据集拆分1.2.1Python与大数据技术#导入库和定义数据importnumpyasnpfromsklearnimportpreprocessingdata1=np.array([[2,-1,2,-0.4],[0,4,0.3,2.1]])#标准化处理data1_standardized=preprocessing.scale(data1)#数据集拆分X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.4,random_state=0)数据存储技术数据存储可以采用文件存储、二进制存储、数据库存储等不同形式存储数据。文件存储可以分为:TXT纯文本形式、CSV格式、Excel格式、JSON格式等在Python中常用的大数据库及表存储有:MongoDB、Redis、SQLite、PyTables等在Python中,文本文件的存储有内置函数open()方法、read()方法、pickle模块等进行读写,还有bs4、pandas、xlrd、xlwt、os等库实现文件的读写。xlwt库用于数据的写入,xlrd库常用于读取excel文件,对excel文件读取可以实现比较精准的控制。如下:1.2.1Python与大数据技术importxlrd#打开excel文件x1=xlrd.open_workbook(filename)#获取sheet对象x1.sheet_names()#获取所有sheet名字tb=data.sheet_by_name('Sheet1')#根据工作表的名称获取工作表的内容数据存储技术也可以与psycopg2库结合,使用pd.read_sql_query()函数读取数据库中的数据,并保存到excel文件中,如下:1.2.1Python与大数据技术ds=x1.sheet_by_index(2)#通过索引查找#行操作ds.row_values(0)#获取第一行所有内容#表操作ds.row_values(1,5,9)#取第二行,第5-8列importpsycopg2#使用psycopg2库连接数据库importpandasaspdtry:conn=psycopg2.connect("dbname=%sport=%suser=%shost=%spassword=%s"%(dbname,portnum,username,url,password))except:print("failinconnect!")#如果连接失败,打印该语句query='SELECTage,teststepFROMdb.databaseWHEREage<20;')#根据query语句到conn数据库中查询,并将结果返回df=pd.read_sql_query(query,conn)#查询语句、连接的数据库对象df.to_excel(filename,sheetname)#将df中的数据保存到excel表格中,保存路径为filename,sheet名为sheetname中数据可视化技术Python的可视化库有:Matplotlib:是Python数据可视化工具和维绘图库,利用Matplotlib可生成线图、直方图、条形图、散点图等。Seaborn:是基于matplotlib统计数据可视化库,要求提前安装numpy,scipy,pandas,和matplotlib.Seaborn支持Python3.6+,不再支持Python2。PyQtGraph:是基于PyQt4/PySide和numpy上构建的纯python的GUI图形库。主要用于数学,科学,工程领域。Pygal:是基于XML的开放标准的矢量图形语言,可以生成多个输出格式的高分辨率Web图形页面,需要导入pygal库。ggplot:ggplot是基于R的ggplot2和图形语法的Python的绘图系统,ggplot与pandas紧密联系。如果你打算使用ggplot,最好将数据保存在DataFrames中。Bokeh:Bokeh是一个Python交互式可视化库,支持浏览器端web展示,它能与NumPy,Pandas,Blaze等大部分数组或表格式的数据结构完美结合VisPy:是用于交互式科学可视化的高性能交互式2D/3D数据可视化库,具有快速、可伸缩、易用特点,它利用图形处理单元(gpu)的计算能力,通过函数API的方式为OpenGLES2.0、Angle和WebGL提供接口。NetworkX:是一个Python包,提供了适合各种数据结构的图表、二合字母和多重图,还有大量标准的图算法,可以产生随机网络、合成网络或经典网络,且节点可以是文本、图像、XML记录等1.2.1Python与大数据技术Python在sklearn包中自带的数据集莺尾花数据集iris、乳腺癌数据集breast_cancer、手写数字数据集digits及MNIST、糖尿病数据集diabetes、波士顿房价数据集boston、体能训练数据集linnerud等。交通领域数据集:Pronto共享单车数据集、Uber纽约市乘车数据、明尼阿波里斯市交通流量数据、欧州航空旅客运输季度数据集等。消费领域数据集:去哪儿网旅游产品机酒数据、淘宝云主题点击数据集、淘宝App用户行为、广告实时竞价数据等。医疗领域数据集:埃博拉数据集、宫颈癌风险因素数据集、帕金森疾病诊断数据集、新型冠状病毒(2019-nCoV)疫情时间序列数据集等。经济金融领域数据集:拍拍贷互联网金融数据、信用卡评分模型构建数据、信用卡欺诈检测数据集、LendingClub贷款数据、Santander客户价值预测数据集等。体育领域数据集:NBA数据集、欧洲足球联赛数据集、AmericanCollegefootball数据集等。1.2.2常用行业数据集Python的嵌入式开发是通过嵌入式开发平台与其他语言模块(如C/C++等)形成联结、调用,应用于智能仪器、工业控制、图形处理、数学处理、Web编程、多媒体应用等领域。MicroPython是Python3编程语言的一个简洁和快速实现,专门优化运行于微控制器电路板上,提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。当前,支持MicroPython的微处理器板有pyboard、TPYBoard、Pymagic、RaspberryPi,以及嵌入式硬件WiPy、Esp8266、EspruinoPico、STM32F4Discovery等。CircuitPython是一门应用于低成本微处理器版的程序设计语言,已经获得约124个处理器版支持,如PyPortal、ThriketM0、FeatherM4Express、MetroM0Express等。1.2.3嵌入式开发应用数据挖掘从狭义角度来看,为数据预处理的过程,包含数据清洗、数据集成、数据转换规范、数据简化等环节;从广义来说,包含数据的采集、数据预处理、数据建模、参数优化、模型评价等环节。在此基础上,也催生了许多数据挖掘技术和算法,如决策树、回归(Regression)、关联规则(AssociationRule)、聚类(Clustering)、朴素贝叶斯算法、主成分分析(PCA)、支持向量机(SVM)、kNN算法、EM算法、k-means算法、AdaBoost、神经网络、异常检测等。决策树:典型算法有ID3(IterativeDichotomiser)、分类决策树算法C4.5、CART(ClassificationandRegressionTrees)算法等回归:包括线性回归和逻辑斯蒂回归(LR回归)。关联规则:典型算法是Apriori算法、Eclat,主要目的是找出数据集中的频繁模式,常应用于超市购物篮分析、网络连接分析、基因分析等。聚类:典型的算法有K均值聚类(K-Means)、层次聚类、密度聚类、谱聚类等。常用的python包有numpy、pandas、scipy、statsmodels、Gensim、matplotlib,以及框架LightGBM、Xgboost、时序包Prophet等。1.2.4数据挖掘及应用1998年,TomMitchell提出机器学习定义为:提出学习问题后,如果计算机程序对于任务T的性能度量P通过经验E得到了提高,则认为此程序对经验E进行了学习。在机器学习研究历程中,可分为符号主义、联结主义、进化主义、贝叶斯派、Analogizers(类比主义)五个学派,它们分别起源于不同的学科,也有着不同的代表性算法和领域人物。详细如表所示。1.2.5机器学习及应用机器学习学派起源学科代表性算法代表性人物应用符号主义(Symbolists)逻辑学、哲学逆演绎算法(Inversededuction)TomMitchell、SteveMuggleton、RossQuinlan知识图谱联结主义(Connectionist)神经科学反向传播算法(Backpropagation)、深度学习(Deeplearning)YannLeCun、GeoffHinton、YoshuaBengio机器视觉、语音识别进化主义(Evolutionaries)进化生物学基因编程(Geneticprogramming)JohnKoda、JohnHolland、HodLipson海星机器人贝叶斯派(Bayesians)统计学概率推理(Probabilisticinference)DavidHeckerman、JudeaPearl、MichaelJordan反垃圾邮件、概率预测类比主义(Analogizer)心理学核机器(Kernelmachines)PeterHart、VladimirVapnik、DouglasHofstadter推荐系统机器学习通常分为有监督学习、半监督学习、弱监督学习、自监督学习、无监督学习、深度学习、强化学习、深度强化学习。除此之外,还有对抗学习、对偶学习、迁移学习、分布式学习和元学习等。机器学习处理流程步骤:定义问题:根据具体任务,定义学习问题收集数据:将收集的数据分成三组:训练数据、验证数据和测试数据特征工程:使用训练数据来构建使用相关特征模型训练:根据相关特征训练模型模型评估:使用你的验证数据评估训练的模型,测试数据检查被训练的模型的表现。模型应用:使用完全训练好的模型在新数据上做预测模型调优:根据模型应用中的问题,以及更多数据、不同的特征、参数来提升算法的性能表现。1.2.5机器学习及应用数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据挖掘(DataMining)则是知识发现和提取的过程,它指的是从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,这些信息的表现形式为:规则、概念、规律及模式等。数据挖掘融合了数据库、人工智能、机器学习、统计学、高性能计算、模式识别、神经网络、数据可视化、信息检索和空间数据分析等多个领域的理论和技术。当前存储和分析大型数据集而开发的开源框架有Hadoop、Spark、Flink、Storm等。1.2.6数据分析未来发展数据分析流程在数据分析过程中,一个完整的流程包含:数据采集、数据清洗、数据存储、数据计算、数据应用环节,基本结构如图所示:1.2.6数据分析未来发展1)数据采集环节经历了结构化数据、非结构化数据(图片,声音,视频)的采集。Spark、Kafka和Pulsar已经成为当前数据接入常用的工具,非结构数据的采集和接入,是未来重要的方向。2)数据清洗中数据质量控制是重要环节,其中脏数据和错误数据是数据分析的主要瓶颈,自动清洗数据技术必是未来发展的基础。3)数据存储的核心是所有数据(结构、半结构、非结构、二进制)的管理,如何从数据库、数据仓库(OnLineAnalyticalProcessing)和数据湖(结构、半结构、非结构、二进制)中挖掘、分析是其关键。结构化典型工具有Hive,数据湖的工具有DeltaLake、Kylo、Dremio、zaloni、Azure等。4)数据计算的数据量处理能力和实时性,已经成为当前大量场景实时进行分析和决策的基础。如实时新闻推荐、用户行为分析、舆情分析等。典型的有Flink、Storm、Samza、SparkStreaming(实时处理框架)等。当前的机器学习平台大多提供了从数据分析→数据转换→数据校验→模型训练建立→模型测试→模型校验→模型部署→模型监测的全过程。如SAS、KeyenceKI、Dataiku等。

数据可视化的工具有Anodot、Sisu、ArcadiaData、Geotab、Siren、Linkedin、Imply、kyvos、esri、Plotly等01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述Python支持的系统平台WindowsUnixLinuxMacOSXPython支持跨平台移植可以移植到Java和.NET虚拟机。Python程序编写可以使用IDLEPythonShell编写1.3.1Python开发环境系统要求Python下载和安装Python提供了可用于32位和64位系统的可执行安装文件,Python官网下载安装,下载地址:/downloads/windows/Python下载后双击该文件,安装中可选择直接安装,或者选择自定义安装,按操作提示安装,在安装中选择把Python添加到环境变量即可。Python环境变量配置第一种方式:在命令提示框中(cmd):输入命令,在环境变量中添加Python目录第二种方式,可以通过右键点击"计算机",然后点击"属性",然后点击"高级系统设置",选择"高级"下的"环境变量“设置成功以后,在cmd命令行,输入命令"python",验证Python环境变量设置是否生效。1.3.2Window系统平台下搭建开发环境Python下载Python的Linux安装包可以从Python官网下载安装,下载地址:/downloads/source/创建Python文件夹,使用wget命令下载上述Python源码解压python3.8.2压缩包使用yum命令安装必需的依赖包,命令如下1.3.3Linux系统平台下搭建开发环境cd/usr/local/mkdirpython//创建一个文件夹用于存放下载的python3压缩包wget/downloads/source/Python-3.8.2.tgz//linux下载python3.8.2指令tar-zxvfPython-3.8.2.tgzyum-yinstallgccyum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-develyum-yinstallopenssl-devel执行配置文件、编译及安装,命令如下建立软连接,命令如下测试Python是否安装成功1.3.3Linux系统平台下搭建开发环境cdPython-3.8.2./configure--prefix=/usr/local/python3.8.2//设置配置make&&makeinstall//编译、安装ln-s/usr/local/python3.8.2/bin/python3.8/usr/bin/python3rm/usr/bin/pythonln-s/usr/local/python3/usr/bin/pythonln-s/usr/local/python3.8.2/bin/pip3/usr/bin/pip3python--version//查看Python安装版本Python下载MAC系统一般都自带有Python2.x版本的环境,也可以在链接地址:/downloads/mac-osx/下载最新版安装首先需要用brew安装Pyenv把pyenv路径添加到.zshrc文件或者.bashrc、.profile、.bash_profile中任一个(根据自己使用)安装Python3.8.2到Mac系统1.3.4Mac系统平台下搭建开发环境brewinstallpyenvecho'exportPATH="$(pyenvroot)/shims:$PATH"'>>~/.bashrc~source~/.bashrcpyenvinstall--list|grep3.8.2pyenvinstall3.8.2检测系统所有安装的Python,以及Python3.8.2是否安装成功设置Python3.8.2为系统默认python检测当前默认Python版本1.3.4Mac系统平台下搭建开发环境pyenvversionspyenvglobal3.8.2python3-V01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述PythonToolsforVisualStudio(PTVS)PythonToolsforVisualStudio是一个免费开源的VisualStudio的插件,支持VisualStudio2010以上版本。在VisualStudio2019安装过程中,选择”Pythondevelopment”即可支持,也可以选择单独安装Python解释器,进行配置修改。其下载网址为:https://microsoft.github.io/PTVS/。VisualStudioCode+PythonVisualStudioCode是Microsoft在2015年推出的一个运行于MacOSX、Windows和Linux之上,针对于编写现代Web和云应用的跨平台源代码编辑器。该编辑器支持多种语言和文件格式的编写,已经支持了37种语言或文件,如F#、HandleBars、Markdown、Python、Java、PHP、C++等。其当前最新的版本为1.44,下载网址:/。SpyderSpyder是应用于优化数据科学工作流的开源Python集成开发环境。目前它通常是作为Anaconda的一部分进行分发,也可以单独下载进行安装配置,但需要提前安装PyQt5、Qtconsole、Rope、Pyflakes、Sphinx、Pygments、Pylint、Pycodestyle、Psutil、Nbconvert、Qtawesome、Pickleshare、PyZMQ、QtPy、Chardet、Numpydoc、Cloudpickle支持包。下载网址:/index.html1.4Python集成开发平台ThonnyThonny是基于Python内置图形库Tkinter开发出来的支持多系统平台(Windows、Linux、Mac)的PythonIDE,支持语法着色、代码自动补全、debug等功能,官网下载地址:/。1.4Python集成开发平台01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述TheanoTheanos是一个可以让用户定义、优化、有效评价数学表示的Python包,是一个通用的符号计算框架。Theano优点是显式的利用了GPU,使得数据计算比CPU更快,使用图结构下的符号计算架构、对RNN支持很好。缺点是依赖于Numpy,偏底层、调试困难、编译时间长、缺乏预训练模型。Scikit-learnScikit-learn是一个在2007年由数据科学家DavidCournapeau发起,基于NumPy和SciPy等包的支持的Python语言的机器学习开源工具包。它通过NumPy、SciPy和Matplotlib等Python数值计算的库,实现有监督和无监督的机器学习。Statsmodels在Python中,statsmodels是统计建模分析的核心工具包,其包括了几乎所有常见的各种回归模型、非参数模型和估计、时间序列分析和建模以及空间面板模型等1.5.1Python库简介GensimGensim是一个开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达,其支持TF-IDF、LSA、LDA、word2vec等主题模型算法,通常用于抽取文档的语义主题。Gensim的输入是原始的、无结构的数字文本(纯文本),在内置的算法支持下,通过计算训练语料中的统计共现模式自动发现文档的语义结构。KerasKeras是基于Theano的一个深度学习框架,也是一个高度模块化的神经网络API库,提供了一种更容易表达神经网络的机制。Keras主要包括14个模块包,如Models、Layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics等模块。DMTKDMTK由一个服务于分布式机器学习的框架和一组分布式机器学习算法构成,是一个将机器学习算法应用在大数据上的强大工具包;支持在超大规模数据上灵活稳定地训练大规模机器学习模型。DMTK的框架包含参数化的服务器和客户端SDK,是设计用于分布式机器学习的平台。1.5.1Python库简介CNTKCNTK是微软认知工具集(MicrosoftCognitiveToolkit,CNTK),是用于商业级分布式深度学习的开源工具包。它通过有向图将神经网络描述为一系列计算步骤。CNTK允许用户轻松实现和组合流行的模型类型,例如前馈DNN,卷积神经网络(CNN)和递归神经网络(RNN/LSTM)。CNTK通过跨多个GPU和服务器的自动微分和并行化实现随机梯度下降(SGD,错误反向传播)学习。1.5.1Python库简介Theano安装在Anaconda中创建并进入环境,注意python版本要≤3.6,输入命令:condacreate--nameMLpython==3.6。安装Theano输入命令:condainstalltheano。安装Theano环境所依赖组件测试Theano安装环境,进入python解释器输入代码1.5.2Python库安装及集成condainstallmkl-servicepipinstallnoseypipinstallparameterizedimporttheanotheano.test()Scikit-learn安装在Anaconda中创建并进入环境,注意python版本要≤3.6(参考1.4搭建机器学习开发环境)输入:condacreate--nameMLpython==3.6。安装Scikit-learn,输入命令:condainstallscikit-learn。测试Scikit-learn安装环境,进入python解释器,输入代码1.5.2Python库安装及集成fromsklearnimportdatasetsiris=datasets.load_iris()digits=datasets.load_digits()print(digits.data)数据分析是进行数据收集、整理、加工、分析和展示的过程,其主要Python应用工具包有Numpy、Pandas、Scikit-Learn、Scipy、Matplotlib等,另外,还有一些数据分析工具包Pyrallel、PyMVPA、MDP、Monte、mlpy、PyML等。PyrallelPyrallel简称PP,是一个基于Python编写的开源和跨平台的分布式计算框架。它提供在SMP(具有多个处理器或多核的系统)和集群(通过网络连接的计算机)上并行执行python代码的机制。它具有在SMP和集群上并行执行python代码、基于Job的并行化技术、自动检测最佳配置、动态负载平衡(作业在运行时在处理器之间分布)、跨平台跨架构的可移植性和互操作性等特点。PyMVPAPyMVPA(MultiVariatePatternAnalysis(MVPA)inPython)是为大数据集提供统计学习分析的Python工具包,它提供了一个灵活可扩展的框架,通过接口提供的功能有分类、回归、特征选择、数据导入导出、可视化等各种算法,可以与相关软件包很好地集成,如scikit-learn、MDP、Shogun、LIBSVM等1.5.3Python数据分析工具MDPMDP(TheModulartoolkitforDataProcessing)是数据处理模块工具包的简称,是一个Python数据处理框架。MDP工具包中的算法,包括信号处理方法(主成分分析,独立分量分析,慢特征分析)、流形学习方法(Hessian局部线性嵌入)、分类器,以及概率方法(因子分析,RBM)数据预处理方法等。MonteMonte(GradientbasedLearninginPython)是用于构建基于梯度学习的Python框架,它可以迅速构建神经网络、条件随机场、逻辑回归等模型。Monte包含模块(包含参数,成本函数和梯度函数)和训练器(可以通过最小化其在训练数据上的成本函数来调整模块的参数。1.5.3Python数据分析工具01

Python简介1.1Python概述1.2Python大数据应用1.6创建Python应用程序1.3搭建Python开发环境1.4Python集成开发平台1.5Python常用库概述AnacondaPython环境创建1.6.1在Anaconda下创建Python程序”开始→Anaconda3(64-bit)→AnacondaNavigator”,若可以成功启动AnacondaNavigator则说明安装成功。启动Anaconda,然后点击启动导航左侧”Evnironments”,选择”create”按钮,在弹出的对话框中添加环境名称Python37,在Package中下拉框选择Python3.7版本。通过上述操作后,Anaconda已将python的环境配置完成,然后在导航栏中点击Home,并选择刚刚创建的环境。安装完成后,点击Spyder中的”launch”,启动Spyder。在启动后的Spyder中,选择菜单”Projects”→”NewProject”,创建新的工程,添加工程名和工程存放目录。选中工程”PythonTest”,点击右键,在弹出的对话框中选择”New”,选择”File”创建Python文件test.py。创建Python程序的方式1.6.2命令行创建Python程序可以从Anaconda导航栏左侧选择”Environments”→”Anaconda3”,然后点击绿色按钮,选择打开Anaconda的终端”openTerminal”或选择用”OpenwithPython”,打开Python。从cmd中使用命令python,打开Python。然后在Python提示符下输入命令:print(“helloworld”),并回车,其输出结果移动终端设备调用Python当前主要有SL4A(ScriptingLayerforAndroid)方法、CLE(CommonLanguageExtension)方法和QPython(PythononAndroid)方法。SL4A通过在Android移动设备上安装SL4A和Pythonforandroid两个.apk程序,然后启动SL4A,通过Python程序脚本访问Android移动设备。CLE方法的CLEforAndroid开发包(支持Android、iOS等)操作详见其官网:/cn/index.html。QPython是Android上的Python脚本引擎,它包含了Python解析器、控制台、编辑器。除了集成了基础的Python库之外,它还集成了支持WebApp开发的bottle库、支持调用安卓API的SL4A库等常见有用的库。目前,QPython分为QPythonOx(OL、OS)和QPython3x(3L、3S)两个版本,QPythonOx适用于初学者,QPython3x面向高级开发者。QPython支持运行控制台程序、WebApp程序,后台应用程序,基于图形界面的应用程序等1.6.3Python运行在移动终端QPython下载安装QPython可以通过三种方式:1)手动安装库;2)从QPypi安装;3)从Pypi安装。打开编辑器(QEdit),编写Python代码1.6.3Python运行在移动终端QPython下载安装编写Python代码调用android弹出对话框上述代码在编辑器编写完成后,点击运行,运行结果如下图所示,在弹出的对话框中输入用户名:张老师,点击”ok”按钮,提示信息显示1.6.3Python运行在移动终端importandroidhelperad=androidhelper.Android()respond=ad.dialogGetInput("用户名","请输入您的姓名")print(respond)name=respond.resultifname:message='欢迎您,%s!'%nameelse:message="请您输入,%Username%!"ad.makeToast(message)1.6.3Python运行在移动终端Python嵌入式应用程序开发安装串口第三方库模块pyserial,打开cmd,输入如下命令读取串口数据1.6.4创建Python嵌入式程序importserialsert=serial.Serial('com3',115200)#按照参数端口号、波特率,打开串口sert.set_buffer_size(rx_size=20480)#设置缓冲区ifsert.isOpen():#检查串口是否打开成功

print('openportsuccessful!')data=b'f='+bytes(fs,encoding='ascii')+b'\r\n'sert.write(data)#写入字节数组alines=''#所有的行whileTrue:#延迟3s等待,读取rxbuffer的数据

time.sleep(3)ct=sert.inWaiting()#数据读入缓存

if(ct>0):data=sert.read(ct)alines=str(data,encoding='ascii')#转码成字符串

breakpipinstallpyserial#python3版本下Python嵌入式应用程序开发将alines中保存成csv格式文件.用于后续的数据分析处理利用matplotlib库,导入并使用其pylab模块来绘上述传感器数据图1.6.4创建Python嵌入式程序File_cs=open(fname+'.csv','w')#写模式创建并打开文件File_cs.write(alines)#直接写入file_cs.close()#写完记得关闭.importmatplotlib.pylabasplalines=str(alines,encoding='ascii').splitlines()………..Python基础知识Python语法基础、Python大数据技术、Python基本应用搭建Python开发环境Window系统、Linux、Mac系统Python集成开发及库集成开发平台、Theano、Scikit-learn、Anaconda创建Python程序Anaconda下创建命令行下创建移动端创建嵌入式程序创建本章小结概念题数据分析与数据挖掘有什么区别?Python常见的机器学习库有哪些,主要应用在哪些方面?Python数据分析的流程包含哪些步骤,分别使用哪些工具?如何在移动终端使用Python训练特征选择模型?操作题使用MicroPython编写人体血压监测程序。要求如下:(1)多线程定时采集数据;(2)支持数据库存储;(3)支持实时图形显示;(4)不限制嵌入式开发板。习题谢谢!Python数据分析、挖掘与可视化Python数据分析、挖掘与可视化PythonDataAnalysis、MiningandVisualization02

Python高级开发2.1字符串2.2文本处理2.6Python测试及框架2.3文件和流2.4网络及Web应用2.5Python图形绘制熟悉字符串常用的方法、匹配及正则、解析的应用;掌握文本常用的读写、解析、转换方法及应用;熟悉文件和流处理的一些技巧;掌握TCP、UDP、RPC网络处理方法及动态网站搭建;熟悉Python图形绘制的常用方法和工具包;了解Python当前测试工具分类及框架;本章学习目标(知识要点)02

Python高级开发2.1字符串2.2文本处理2.6Python测试及框架2.3文件和流2.4网络及Web应用2.5Python图形绘制字符串和字符在Python中处理文本数据使用str对象,也称为字符串。字符串(string)是由单引号(')或双引号(")或三重单引号(''')括起来的文本信息组成的有序字符集合。Python特殊字符使用反斜杠"\"进行转义,由反斜杠"\"和紧接的字符组成转义特殊字符,常用转义特殊字符如表所示。2.1.1字符串及格式化转义特殊字符名称转义特殊字符名称\b退格符\t横向制表符\n换行符\v纵向制表符\f换页符\000空\r回车符\oyy八进制数,yy代表的字符,其中o是字母,不是数字0。\\反斜线\xyy十六进制数,yy代表的字符\'单引号\other其它的字符以普通格式输出\"双引号

字符串格式化在Python中字符串格式化方式有四种,分别为:基于位置格式化的方法、调用字符串对象的.format()方法、f-strings方法、字符串模板。基于位置格式化的方法:是将一个变量值插入到一个有字符串格式符%s的字符串中。调用字符串对象的.format()方法:在大多数情况下与基于位置字符串的%格式化类似,只是增加了{}和:来取代%。它可以通过替换字段用大括号{}进行标记,也可以通过索引来以其他顺序引用变量,或者参数名、字典来引用数据。2.1.1字符串及格式化字符串格式化对齐文本以及指定宽度使用特定类型的专属格式化使用逗号作为千位分隔符2.1.1字符串及格式化>>>'{:<30}'.format('leftaligned')'leftaligned'>>>'{:>30}'.format('rightaligned')'rightaligned'>>>'{:^30}'.format('centered')'centered>>>importdatetime>>>d=datetime.datetime(2020,4,4,12,15,58)>>>'{:%Y-%m-%d%H:%M:%S}'.format(d)'2020-04-0412:15:58'>>>'{:,}'.format(1234567890)'1,234,567,890'字符串格式化f-strings方法:是formattedstringliterals的简称,是自Python3.6后新增加的在字符串常量中使用嵌入Python表达式的字符串格式化方法。它可以进行内联计算、嵌入替换、调用函数传值替换等操作。字符串模板:提供了更简便的字符串替换方式,模板字符串的类是Template,它支持基于$的替换,$identifier为替换占位符,会匹配一个名为"identifier"的映射键,${identifier}等价于$identifier。模板字符串的一个主要应用是文本国际化(i18n)2.1.1字符串及格式化>>>fromstringimportTemplate>>>s=Template('$wholikes$what')>>>s.substitute(who='tim',what='kungpao')'timlikeskungpao'>>>d=dict(who='tim')>>>Template('$wholikes$what').safe_substitute(d)'timlikes$what'字符串方法删除替换字符串中不需要的字符:常用的方法有strip()方法用于删除开始或结尾的字符,lstrip()为从左执行删除操作,rstrip()从右执行删除操作。如果删除中间空格或特殊字符,可用replace()方法用于替换或者后续介绍的正则表达式。分割字符串:是指将一个字符串用分隔符分割为多个字段。常用的方法有string对象的split()、rsplit()、lsplit(),如有多个分隔符,则常用re.split()方法2.1.2字符串常用方法>>>s='helloworld'>>>s.split('')['hello','world']>>>line='hello,world;zhangsan'>>>importre>>>re.split(r'[,;]',line)['hello','world','zhangsan']>>>s='helloworld'>>>s.strip()#不是在原字符串上操作,而是返回一个去掉两边空格的字符串'helloworld'>>>s='helloworld'>>>s.lstrip('-')'helloworld'>>>s.replace('','')'helloworld'字符串方法字符串合并拼接:将几个小的字符串合并拼接为大的字符串。常用的方法有join()、加号(+)。字符串对齐及截取搜索:字符串对齐常用的方法有左对齐ljust()、右对齐rjust()、居中center(),以及函数format()方法使用<,>或者-字符后面跟随一个指定的宽度2.1.2字符串常用方法>>>ts='helloworld'>>>format(ts,'20')'helloworld'>>>format(ts,'=<20')'helloworld========='>>>ps=['I','am','a','student']>>>''.join(ps)'Iamastudent'>>>a='Iam'>>>b='ateacher'>>>a+''+b'Iamateacher'字符串匹配:字符串匹配常用于指定的文本模式匹配,根据不同的应用情况有多种方式,常用的简单匹配方法有startswith()、endswith()、fnmatch()、fnmatchcase()、find()等,这些方法常用于字符串开头或结尾匹配、文件名或后缀匹配、查找字符串及其位置等。正则表达式匹配:查找匹配:常用查找匹配函数有match()、search()以及compile()函数。compile()函数编译正则表达式,生成一个正则表达式对象,供match()和search()函数使用函数re.match(pattern,string,flags=0)有三个参数,匹配成功re.match方法返回一个匹配的对象,否则返回None2.1.3字符串匹配与正则#span()返回一个元组包含匹配(开始,结束)的位置>>>importre>>>print(re.match('www','').span())#在起始位置匹配(0,3)>>>print(re.match('com',''))#不在起始位置匹配None>>>name="te.txt">>>name.endswith('.txt')True>>>ul="">>>ul.startswith('http:')True>>>fnmatch('te.txt','*.txt')#不区分大小写True正则表达式匹配:检索和替换:除了上述的findall()、find()、finditer()方法之外,Python还提供了re.sub用于替换字符串中的匹配项如电话号码的提取2.1.3字符串匹配与正则>>>importre>>>phone=这是一个电话号码"#删除字符串中的Python注释>>>num=re.sub(r'#.*$',"",phone)>>>print"电话号码是:",num电话号码是gt;>>tx='Thisis4/25/2020.Con19starts1/1/2020.'>>>dpattern=pile(r'\d+/\d+/\d+')#设置匹配模板>>>dpattern.findall(tx)#查找['4/25/2020','1/1/2020']>>>fornindpattern.finditer(tx):...print(n.group())#注意缩进格式...4/25/20201/1/2020>>>字符串与I/O结合parse解析的后的文本为例,介绍字符串与I/O结合,从文本文件中读取字符,然后经过基本统计处理,再把文本信息和统计信息写入文件保存的过程2.1.4字符串应用#统计文本中的字符数量filer=open('twitter.txt','rt',encoding='utf-8')filew=open('tw_count.csv','wt',encoding='utf-8')tw=filer.read().strip().strip('\n')#删除空格、'\n'tw_dict={}ps_tw=[]foritemsintw:ifitemsnotintw_dict.keys():tw_dict[items]=tw.count(items)#遍历文本,把字符及数量写入字典

else:continueelse:print('countisover!')

#twitter文本统计结果写入csv文件保存forkeysintw_dict:ps_tw.append("{}:{}".format(keys,tw_dict[keys]))filew.write(','.join(ps_tw))filer.close()#读关闭filew.close()#读关闭02

Python高级开发2.1字符串2.2文本处理2.6Python测试及框架2.3文件和流2.4网络及Web应用2.5Python图形绘制JSON(JavaScriptObjectNotation)是基于JavaScript的一个轻量级的数据交换格式,采用完全独立于语言的文本格式,由两种结构组成:键值对集合(在不同语言中,实现对象为记录、结构、字典、哈希表、键列表或关联数组等)、有序的值列表(如数组)。Python内置有json内置包,提供了四个功能函数:dumps()、dump()、loads()、load(),用于处理JSON数据,转换为Python的list或dict。JSON数据转换为Python字典2.2.1读写JSON数据#使用loads:将JSON字符串转换为字典importjsonx='{"name":"ZhangSan","age":18,"city":"Beijing"}'#JSON格式数据y=json.loads(x)#Python字典print(y["age"])JSON(JavaScriptObjectNotation)Python对象转换为JSON字符串创建代码文件test_dumps.py,使用函数dumps()实现转换为JSON字符串2.2.1读写JSON数据importjson#使用Python对象(字典):x={"name":"ZhangSan","age":18,"city":"Beijing"}y=json.dumps(x)#转换为JSON字符串print(y)#打印结果JSON字符串JSON(JavaScriptObjectNotation)读写文件函数dump()和load()主要用于读写json格式的文件。首先创建w_json.py文件然后在命令行执行命令2.2.1读写JSON数据importjsonx={"name":"ZhangSan","age":18,"city":"Beijing"}withopen('name.txt','w')asf:json.dump(x,f)pythonw_json.pyJSON(JavaScriptObjectNotation)读写文件读取文件内容使用load()函数2.2.1读写JSON数据importjsonwithopen('name.txt','r')asf:x=json.load(f)#x是字典对象print(x['age'])CSV(CommaSeparatedVaules)是电子表格和数据库中最常见的输入、输出文件格式。Python中内置的CSV标准库模块可以实现CSV格式表单数据的读写,其中reader类和writer类可用于读写序列化的数据,DictReader类和DictWriter类以字典的形式读写数据。另外,也可以使用Pandas解析CSV文件读取文件内容reader()和writer()读写文件需要导入csv包,读取csv文件需要函数csv.reader(csvfile,dialect='',**fmtparams),返回为reader对象,该对象将逐行遍历csvfile2.2.2读写CSV数据>>>importcsv>>>withopen('test.csv',newline='',encoding='utf-8')ascsvfile:#指定编码格式...tx_reader=csv.reader(csvfile,delimiter='',quotechar='|')...forrowintx_reader:...print(';'.join(row))数据写入csv格式文件,需要用函数csv.writer(csvfile,dialect='',**fmtparam)使用Pandas读取CSV文件2.2.2读写CSV数据importcsvwithopen('w_test.csv','w',newline='')ascsvfile:tx_writer=csv.writer(csvfile,delimiter='',quotechar='|',quoting=csv.QUOTE_MINIMAL)tx_writer.writerow('Bill','isover')tx_writer.writerow(['Bill','lovestwitter','Why'])importpandastf=pandas.read_csv('test.csv')#读取数据存储在DataFrame中print(tf)tf.to_csv('tw_test.csv')#将数据写入文件中XML(eXtensibleMarkupLanguage)指用来传输和存储数据的可扩展标记语言。Python中用于处理XML的Python接口都在xml包中。常见的XML编程接口有DOM(DocumentObjectModel)和SAX(simpleAPIforXML)两种,对于XML的解析,可通过SAX、DOM和ElementTree三种方式完成,ElementTree类似轻量级的DOMSAX解析xml文件SAX是一种基于事件驱动的API,通过解析器和事件处理器解析XML文件,解析器负责读取XML文档,并向事件处理器发送事件,事件处理器则负责对事件作出响应,对传递的XML数据进行处理。上述解析过程主要通过xml.sax中的parse函数和xml.sax.handler中的ContentHandler类的方法完成2.2.3解析XML数据SAX解析xml文件在Anaconda3中使用Spyder创建工程PythonTest1代码如下:2.2.3解析XML数据<collectionshelf="NewArrivals">在工程下导入需要解析的XML文件mv.xml<mvtitle="EnemyBehind"><type>War,Thriller</type><format>DVD</format><year>2019</year><description>TalkaboutaUS-Japanwar</description></mv><mvtitle="Transformers"><type>Anime,ScienceFiction</type><format>DVD</format><year>2019</year><description>Aschientificfiction</description></mv></collection>SAX解析xml文件在工程下创建python解析代码文件mv_parse.py2.2.3解析XML数据#-*-coding:utf-8-*-importxml.saxclassMHandler(xml.sax.ContentHandler):def__init__(self):….#元素开始事件处理

defstartElement(self,tag,attributes):….#元素结束事件处理

defendElement(self,tag):….#内容事件处理

defcharacters(self,content):if(__name__=="__main__"):

#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论