计算机⼆级教程Python语⾔程序设计,第11章Python第三⽅库
纵览
第⼗⼀章学习知识导图
考点主要是:
1) 更⼴泛的Python计算⽣态,只要求了解第三⽅库的名称,不限于以下领域: ⽹络爬⾍、数据分析、⽂本处理、数据可视化、⽤户图形界⾯、机器学习、Web开发、游戏开发
2) 作者归纳:本章就是考选择题,⼤致就是问以下的哪个是不属于某⽅向的库,但是经常超纲考,⼤家如果有题库的话做这部分的题应该会感觉到,不过就算超纲也⽆所谓,最多两分⽽已,这章考⽣分清楚哪个⽅向有哪个库就⾏了,更细致的看看了解⼀下就⾜够了。本次更新完,计算机⼆级考试python的所有知识点就全部介绍完毕了,希望⼤家在学习python的路途上继续加油。⼈⽣苦短,我⽤python。
⼀、⽹络爬⾍⽅向
1、⽹络爬⾍⽅向
(1) ⽹络爬⾍是⾃动进⾏HTTP访问并捕获HTML页⾯的程序。Python语⾔提供了多个具备⽹络爬⾍功能的第三⽅库。这⾥,仅介绍2个常⽤的Python⽹络爬⾍库:requests和scrapy
2、requests
(1) requests库是⼀个简洁且简单的处理HTTP请求的第三⽅库,它的最⼤优点是程序编写过程更接近正常URL访问过程。这个库建⽴在Python语⾔的urllib3库基础上。request库⽀持⾮常丰富的链接访问功能
3、scrapy
(1) scrapy是Python开发的⼀个快速的、⾼层次的Web获取框架。不同于简单的⽹络爬⾍功能,scrapy框架本⾝包含了成熟⽹络爬⾍系统所应该具有的部分共⽤功能,
(2) scrapy⽤途⼴泛,可以应⽤于专业爬⾍系统的构建、数据挖掘、⽹络监控和⾃动化测试等领域
⼆、数据分析⽅向
1、数据分析⽅向
数据分析是Python的⼀个优势⽅向,具有⼤批⾼质量的第三⽅库。这⾥仅介绍3个最常⽤的⽣态库:numpy、scipy和pandas
2、Numpy
(1) numpy是Python的⼀种开源数值计算扩展第三⽅库,⽤于处理数据类型相同的多维数组(ndarray),简称“数组”。
(2) 这个库可⽤来存储和处理⼤型矩阵,⽐Python语⾔提供的列表结构要⾼效的多。numpy提供了许多⾼级的数值编程⼯具,如:矩阵运算、⽮量处理、N维数据变换等。
(3) numpy内部是C语⾔编写,对外采⽤Python语⾔进⾏封装,因此,在进⾏数据运算时,基于numpy的Python程序可以达到接近 C 语⾔的处理速度。numpy也成为Python数据分析⽅向各其他库的基础依赖库,已经成为了科学计算事实上的“标准库”
3、scipy
(1) scipy是⼀款⽅便、易于使⽤、专为科学和⼯程设计的Python⼯具包。在numpy库的基础上增加了众多的数学、科学以及⼯程计算中常⽤的库函数。它包括统计、优化、整合、线性代数、傅⾥叶变换、信号分析、图像处理、常微分⽅程求解等众多模块。
4、pandas
(1) pandas是基于numpy扩展的⼀个重要第三⽅库,它是为了解决数据分析任务⽽创建的。Pandas提供了⼀批标准的数据模型和⼤量快速便捷处理数据的函数和⽅法,提供了⾼效地操作⼤型数据集所需的⼯具。
(2) pandas提供两种最基本的数据类型: S e r i e s 和DataFrame,分别代表⼀维数组和⼆维数组类型。
三、⽂本处理⽅向
1、Pandas
(1) Python语⾔⾮常适合处理⽂本,因此,在这个⽅向也形成了⼤量有价值的第三⽅库。这⾥介绍4个最常⽤的⽣态库:pdfminer、openpyxl、python-docx、beautifulsoup4
2、Pdfminer
(1) pdfminer是⼀个可以从PDF⽂档中提取各类信息的第三⽅库。与其他PDF相关的⼯具不同,它能够完全获取并分析 P D F 的⽂本数据。Pdfminer能够获取PDF中⽂本的准确位置、字体、⾏数等信息,能够将PDF⽂件转换为HTML及⽂本格式。
(2) pdfminer 包含两个重要的⼯具: p d f 2 t x t . p y 和dumppdf.py。
(3) pdf2txt.py能够从 P D F ⽂件中提取所有⽂本内容。dumppdf.py能够把PDF⽂件内容变成XML格式,并进⼀步提取其中的图⽚。
3、openpyxl
(1) openpyxl是⼀个处理Microsoft Excel⽂档的Python第三⽅库,它⽀持读写Excel的xls、xlsx、xlsm、xltx、xltm等格式⽂件,并进⼀步能处理Excel⽂件中excel⼯作表、表单和数据单元pandas
numpy库不具有的功能有
4、python-docx
(1) python-docx是⼀个处理Microsoft Word⽂档的Python第三⽅库,它⽀持读取、查询以及修改doc、docx等格式⽂件,并能够对Word常见样式进⾏编程设置,包括:字符样式、段落样式、表格样式等,进⼀步可以使⽤这个库实现添加和修改⽂本、图像、样式和⽂档等功能。5、beautifulsoup4
(1) beautifulsoup4库,也称为Beautiful Soup库或bs4库,⽤于解析和处理HTML和XML。需要注意,它不是BeautifulSoup库。它的最⼤优点是能根据HTML和XML语法建⽴解析树,进⽽⾼效解析其中的内容
(2) beautifulsoup4库将数据从HTML和XML⽂件中解析出来,它能够提供⼀种符合习惯的⽅法去遍历搜索和修改解析树,将专业的Web页⾯格式解析部分封装成函数,提供了若⼲有⽤且便捷的处理函数。
四、数据可视化⽅向
1、数据可视化⽅向
(1) 数据可视化指根据数据特点将其展⽰为易于理解图形的过程。Python语⾔在数据可视化⽅⾯具有较强的优势。这⾥介绍3个最常⽤的⽣态库:matplotlib、TVTK、mayavi
2、matplotib
(1) matplotlib是提供数据绘图功能的第三⽅库,主要进⾏⼆维图表数据展⽰,⼴泛⽤于科学计算的数据可视化。使⽤这个库可以利⽤Python 程序绘制超过100种数据可视化效果
3、TVTK
(1) TVTK库在标准的VTK库之上⽤Traits 库进⾏封装的Python第三⽅库。视觉⼯具函数库(VTK)是⼀个开源、跨平台、⽀持平⾏处理的图形应⽤函数库,它是专业可编程的三维可视化⼯具。TVTK在Python⽣态系统中被等同于VTK。
(2) mayavi基于VTK开发,完全⽤Python编写,提供了⼀个更为⽅便实⽤的可视化软件,可以简洁地嵌⼊到⽤户编写的Python程序中,或者直接使⽤其⾯向脚本的API快速绘制三维可视化图形。值得注意的是,mayavi也被称为mayavi2。
(3) nmayavi库在Windows平台上暂时不能⽅便的使⽤pip命令安装,建议使⽤⽂件安装,请下载mayavi对应版本⽂件,然后在本地安装
五、⽤户图形界⾯⽅向
1、⽤户图形界⾯⽅向
(1) Python标准库内置了⼀个GUI库——tkinter,这个库基于Tck/Tk开发,然⽽,这个库⼗分陈旧,提供的开发控件也很有限,编写出来的GUI风格与现代程序GUI风格相差甚远,从⽤户体验⾓度说,tkinter库并不成熟。这⾥介绍3个⾼质量的⽤户图形界⾯Python⽣态库:
pyqt5、wxpython、pygtk
2、pyqt5
(1) pyqt5是Qt5应⽤框架的Python第三⽅库,它有超过 6 2 0 个类和近 6 0 0 0 个函数和⽅法。它是Python中最为成熟的商业级GUI第三⽅库。这个库是Python语⾔当前最好的GUI第三⽅库,它可以在Windows、Linux和Mac OS X等操作系统上跨平台使⽤npyqt5采⽤“信号-槽”机制将事件和对应的处理程序进⾏绑定。pyqt5窗体有很多内置信号,也可以⾃定义信号。
3、wxpython
(1) wxPython是Python语⾔的⼀套优秀的GUI图形库,它是跨平台GUI库wxWidgets的Python封装,可以使Python程序员能够轻松地创建健壮可靠、功能强⼤的图形⽤户界⾯的程序。
4、pygtk
(1) pygtk是基于GTK+的Python语⾔封装,它提供了各式的可视元素和功能,能够轻松创建具有图形⽤户界⾯的程序。pygtk具有跨平台性,利⽤它编写的代码能够不加修改地稳定运⾏在各操作系统中,如Windows、MacOS、Linux等
六、机器学习⽅向
1、机器学习⽅向
(1) 机器学习是⼈⼯智能领域的⼀个重要分⽀,Python语⾔也是机器学习和⼈⼯智能的重要基础语⾔。这⾥介绍3个⾼质量的机器学习框架:Scikit-learn、TensorFlow、Theano
2、Scikit-learn
Scikit-learn是⼀个简单且⾼效的数据挖掘和数据分析⼯具,它基于NumPy、SciPy和matplotlib构建。Scikit-learn的基本功能主要包括6个部分:分类,回归,聚类,数据降维,模型选择和数据预处理。Scikit-learn也被称为sklearn。
3、Tensorflow
TensorFlow是⾕歌公司基于DistBelief进⾏研发的第⼆代⼈⼯智能学习系统,也是⽤来⽀撑著名的AlphaGo系统的后台框架。Tensor(张量)指N维数组,Flow(流)指基于数据流图的计算,TensorFlow描述张量从流图的⼀端流动到另⼀端的计算过程
4、Theano
Theano为执⾏深度学习中⼤规模神经⽹络算法的运算⽽设计,擅长处理多维数组。Theano开发始于2007,可以理解它是⼀个运算数学表达式的编译器,并可以⾼效运⾏在GPU或CPU上。Theano是⼀个偏向底层开发的库,更像⼀个研究平台⽽⾮单纯的深度学习库
七、Web开发⽅向
1、Web开发⽅向
(1) Web开发是Python语⾔流⾏的⼀个重要⽅向,主要⽤于服务器后端开发。根据Python Web开发框架的复杂程度,这⾥依次介绍3个Python第三⽅⽣态库:Django、Pyramid、Flask
2、Django
Django是Python⽣态中最流⾏的开源Web应⽤框架。
Django采⽤模型、模板和视图的编写模式,称为MTV模式。Django中提供了开发⽹站经常⽤到的模块,Django的开发理念是DRY(Don't Repeat Yourself),⽤于⿎励快速开发,进⽽减少程序员可以建⽴⼀个⾼性能Web应⽤所花费的时间和精⼒,形成⼀种⼀站式解决⽅案
3、Pyramid
Pyramid是⼀个通⽤、开源的Python Web应⽤程序开发框架。它主要的⽬的是让Python开发者更简单的创建
Web应⽤,相⽐Django,Pyramid是⼀个相对⼩巧、快速、灵活的开源Python Web框架。Pyramid仍然⾯向较⼤规模的Web应⽤,但它更关注灵活性,开发者可以灵活选择所使⽤的数据库、模板风格、URL结构等内容。
4、Flask
Flask是轻量级Web应⽤框架,相⽐Django和Pyramid,它也被称为微框架。使⽤Flask开发Web应⽤⼗分⽅便,甚⾄⼏⾏代码即可建⽴⼀个⼩型⽹站。Flask核⼼⼗分简单,并不直接包含诸如数据库访问等的抽象访问层,⽽是通过扩展模块形式来⽀持。
⼋、游戏开发⽅向
1、游戏开发⽅向
(1) 游戏开发是⼀个有趣的⽅向,在游戏逻辑和功能实现层⾯,Python已经成为重要的⽀撑性语⾔。这⾥介绍3个Python第三⽅⽣态库:Pygame、Panda3D、cocos2d
2、Pygame
Pygame是在SDL库基础上进⾏封装的、⾯向游戏开发⼊门的Python第三⽅库,除了制作游戏外,还⽤于制作多媒体应⽤程序。其
中,SDL(Simple DirectMedia Layer)是开源、跨平台的多媒体开发库,通过OpenGL和Direct3D底层函数提供对⾳频、键盘、⿏标和图形硬件的简洁访问
Pygame是⼀个游戏开发框架,提供了⼤量与游戏相关的底层逻辑和功能⽀持,⾮常适合作为⼊门库理解并实践游戏开发
3、Panda3D
Panda3D是⼀个开源、跨平台的3D渲染和游戏开发库,简答说,它是⼀个3D游戏引擎,由迪⼠尼和卡耐基梅隆⼤学娱乐技术中⼼共同进⾏开发。Panda3D⽀持Python和C++两种语⾔,但对Python⽀持更全⾯。
Panda3D⽀持很多当代先进游戏引擎所⽀持的特性:法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等。
4、cocos2d
cocos2d是⼀个构建2D游戏和图形界⾯交互式应⽤的框架,它包括C++、JavaScript、Swift、Python等多个版本。cocos2d基于OpenGL进⾏图形渲染,能够利⽤GPU进⾏加速。cocos2d引擎采⽤树形结构来管理游戏对象,⼀个游戏划分为不同场景,⼀个场景⼜分为不同层,每个层处理并响应⽤户事件
九、更多第三⽅库
1、PIL
(1) PIL库是Python语⾔在图像处理⽅⾯的重要第三⽅库,⽀持图像存储、显⽰和处理,它能够处理⼏乎所有图⽚格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和⽂字等操作。
(2) PIL库主要可以完成图像归档和图像处理两⽅⾯功能需求:
图像归档:对图像进⾏批处理、⽣成图像预览等;
图像处理:图像基本处理、像素处理、颜⾊处理等
2、SymPy
SymPy是⼀个⽀持符号计算的Python第三⽅库,它是⼀个全功能的计算机代数系统。SymPy代码简洁、易于理解,⽀持符号计算、⾼精度计算、模式匹配、绘图、解⽅程、微积分、组合数学、离散数学、⼏何学、概率与统计、物理学等领域计算和应⽤
3、NLTK
NLTK是⼀个⾮常重要的⾃然语⾔处理Python第三⽅库,它⽀持多种语⾔,尤其对中⽂⽀持良好。NLTK可以进⾏语料处理、⽂本统计、内容理解、情感分析等多种应⽤,具备⾮常可靠的应⽤价值
4、WeRoBot
WeRoBot 是⼀个开发框架,也称为的机器⼈框架。WeRoBot可以解析服务器发来的消息,并将消息转换成成Message 或者Event类型
5、MyQR
MyQR是⼀个能够产⽣基本⼆维码、艺术⼆维码和动态效果⼆维码的Python 第三⽅库
⼗、本章⼩结
本章通过8个具体⽅向30个Python功能库的简要介绍纵览Python语⾔计算⽣态的丰富性,希望读者能够从Python基础语法出发,看到更⼴阔的程序设计⽣态,进⼀步“理解和运⽤计算⽣态”,掌握符合信息时代需要的程序设计能⼒
⼗⼀、作者总结
到此为⽌,计算机等级考试⼆级python就已经全部介绍完成了,希望每⼀位报考计算机⼆级python都可以顺利通过,从下次开始,作者将从头开始介绍⽐计算机⼆级更为细致的知识点,如果您想从事python的相关⼯作,计算机⼆级考试只能算是您⼊门的⼀个见证,在我今年三⽉考过计算机⼆级python以后,到现在为⽌,学习python,发现还有好多遗漏的知识,所以就认认真真的⼜把所有的基础知识过了⼀遍,建议⼤家学习python⼀定要把基础打好。还有就是⼆级python的考试不涉及⾯向对象编程,作者在后续的更新中会按照下⾯思维导图的计划再细化⼀遍python的学习,然后会介绍⾯向对象编程,数据库,和正则表达式的相关知识。
作者写python的相关⽂章单纯为了记录学习过程和分享⾃⼰的学习经验,同时分享⾃⼰的学习资料,并没有利益⽬的。
如果作者的⽂章有帮助到您,希望可以关注点赞⽀持。
作者计划先进⾏深度学习和机器学习的相关学习