第 11 章 Python 第三方库纵览

整理的文章内容主要来源为高教版《计算机等级考试二级 Python》教程视频讲义,并且更正了原讲义中的错误的地方。
专栏文章索引如下:
考试大纲
第 1 章 程序设计基本方法
第 2 章 Python 语言基本语法元素
第 3 章 基本数据类型
第 4 章 程序的控制结构
第 5 章 函数和代码复用
第 6 章 组合数据类型
第 7 章 文件和数据格式化
第 8 章 Python 计算生态
第 9 章 Python 标准库概览
第 10 章 Python 第三方库使用
第 11 章 Python 第三方库纵览

1. 网络爬虫方向

1.1 requests

requests 库是一个简洁且简单的处理 HTTP 请求的第三方库,其最大优点是程序编写过程更接近正常 URL 访问过程。这个库建立在 Python 语言的urllib3 库基础上,类似这种在其他函数库之上再封装功能提供更友好函数的方式在 Python 语言中十分常见。在 Python 生态圈里,任何人都有通过技术创新或体验创新发表意见和展示才华的机会。

reuqests 库支持非常丰富的链接访问功能,包括国际域名和 URL 获取、HTTP 长链接和链接缓存、HTTP 会话和 cookie 保持、浏览器使用风格的 SSL 验证、基本的摘要认证、有效的键值对 cookie 记录、自动解压缩、自动内容解码、文件分块上传、HTTP(s) 代理功能、连接超时功能、流数据下载等。
有关 requests 库的更多可以访问 http://www.python-requests.org.
安装命令:

pip install requests –i https://mirrors.aliyun.com/pypi/simple/

requests库提供了 7 个函数,用来表示对一个网页的 HTTP 请求。
requests 库的常用函数及描述如下所示:

序号函数描述
1requests.request()构造一个请求,支撑以下各方法的基础方法
2requests.get()获取 HTML 网页的主要方法,对应于 HTTP 的 GET
3requests.head()获取 HTML 网页头的主要方法,对应于 HTTP 的 HEAD
4requests.post()向 HTML 网页提交 POST 请求的方法,对应于 HTTP 的 POST
5requests.put()向 HTML 网页提交 PUT 请求的方法,对应于 HTTP 的 PUT
6requests.patch()向 HTML 网页提交局部修改请求,对应于 HTTP 的 PATCH
7requests.delete()向 HTML 页面提交删除请求,对应于 HTTP 的 DELETE
import requests
res = requests.get('http://www.baidu.com')
print(res.text)

1.2 scrapy

scrapy 是 Python 开发的一个快速的、高层次的 Web 获取框架。不同于简单的网络爬虫功能,scrapy 框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能,它是一个半成品,任何人都可以根据需求方便地利用框架已有功能经过简单扩展实现专业的网络爬虫系统。

scrapy 用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域。scrapy 提供 URL 队列、异步多线程访问、定时访问、数据库集成等众多功能,基于它构建的爬虫系统可以 7*24 小时运行,具备产品级运行能力。
有关 scrapy 库的更多介绍可以访问 https://scrapy.org.
安装命令:

pip install scrapy 

scrapy 框架结构,通过扩展函数完善功能后,可以利用这套框架实现对 Web 页面不间断的获取。由于 scrapy 框架质量很高,可以用于产品设计和开发。

2. 数据分析方向

数据分析是 Python 的一个优势方向,具有大批高质量的第三方库。

2.1 numpy

numpy 是 Python 的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组(ndarray) 简称 “数组”。这个库可用来存储和处理大型矩阵,比 Python 语言提供的列表结构要高效很多。numpy 提供了许多高级的数值编程工具,如矩阵运算、矢量运算、N 维数据变换等。
numpy 内部是 C 语言编写,对外采用 Python 语言进行封装。因此,在进行数据运算时,基于numpy 的 Python 程序可以达到接近 C 语言的处理速度。numpy 也成为 Python 的数据分析方向及其他库的基础依赖库,已经成了科学计算事实上的“标准库”。
有关 numpy 库的更多介绍可访问 http://www.numpy.org/.
安装命令:

pip install numpy

2.2 scipy

scipy 是一款方便、易用、专为科学和工程设计的 Python 工具包,它在 numpy 库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。它包括统计、优化、整合、线性代数、傅里叶变换、信号分析、图像处理、常微分方程求解等众多模块。顾名思义,scipy 主要用于科学和工程计算。
有关 scipy 库的更多介绍可访问 https://scipy.org.
安装命令:

pip install scipy 

2.2 pandas

pandas 是基于 numpy 扩展的一个重要第三方库,它是为了解决数据分析任务而创建的。pandas 提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需要的工具。

pandas 最初被作为金融数据分析工具而开发,因此,pandas 为时间序列分析提供了很好的支持。pandas 的名称来自面板数据 (panel data) 和 Python 数据分析 (data analysis). Panel data是经济学中关于多维数据集的一个术语。pandas 提供两种最基本的数据类型:Series 和 DataFrame, 分别代表一维数组和二维数组类型。
有关 pandas 库的更多介绍要访问 https://pandas.pydata.org/.
安装命令:

pip install pandas

3. 文本处理方向

Python 语言非常适合文本处理,因此,在这个方向也形成了大量有价值的第三方库。常用的有pdfminer、python-docx、beautifulsoup4.

3.1 pdfminer

pdfminer 是一个可以从 PDF 文档中提取各类信息的第三方库。与其他 PDF 相关的工具不同,它能够完全获取并分析 PDF 的文本数据 pdfminer 能够获取 PDF 中文本的准确位置、字体、行数等信息。能够将 PDF 文件转为 HTML 及文本格式。pdfminer 包含两个重要的工具: pdf2txt.py 和 dumppdf.py.

pdf2txt.py 能够从 PDF 文件中提取所有文本内容。dumppdf.py 能够把 PDF 文件内容编程 XML 格式,并进一步提取其中的图片。
pdfminer 库的更多介绍可访问 https://euske.github.io/pdfminer/.
安装命令:

pip install pdfminer

3.2 openpyxl

openpyxl 是一个处理 Microsoft Excel 文档的 Python 第三方库,它支持读写 Excel 的 xls、xlsx、xlsm、xltx、xltm 等格式文件,并进一步能处理 Excel 文件中的工作表、表单和数据单元。
有关 openpyxl 库的更多介绍可访问 http://openpyxl.readthedocs.io/
.
安装命令:

pip install openpyxl

3.3 python-docx

python-docx 是一个处理 Microsoft Word 文档的 Python 第三方库,它支持读取、查询以及修改doc、docx 等格式文件,并能够对 Word 常见样式进行编程设置,包括字符样式、段落样式、表格样式、页面样式等,进一步可以使用这个库实现添加和修改文本、图像、样式和文档等功能。
有关 python-docx 库的更多介绍可访问 https://pypi.python.org/pypi/python-docx.
安装命令:

pip install python-docx

3.4 beautifulsoup4

beautifulsoup4 库,也称为 beautiful Soup 库或 bs4 库,用于解析和处理 HTML 和 XML. 需要注意,它不是 beautifulSoup 库。它的最大优点是能根据 HTML 和 XML 语法建立解析树,进而高效地解析其中的内容。
HTML 建立的 Web 页面一般非常复杂,除了有用的内容信息处,还包括大量用于页面格的元素,直接解析一个 Web 网页需要深入了解 HTML 语法,而且比较复杂。beautifulsoup4 库将专业的 Web 页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。

4. 数据可视化方向

4.1 matplotlib

matplotlib 是提供数据绘图功能的第三方库,主要进行二维图表数据展示。广泛用于科学计算的数据可视化,使用这个库可以利用 Python 程序绘制超过 100 种数据可视化效果。
有关 matplotlib 库的更过介绍可以访问 http://matplotlib.org/.
安装命令:

pip install matplotlib

4.2 TVTK

TVTK 库是在标准的 VTK 库之上用 Traits 库进行封装的 Python 第三方库。视觉工具函数(Visualization Tooklit, VTK)是一个开源、跨平台、支持平行处理的图形应用函数库,它是专业的可编程三维可视化工具。TVTK 在 Python 生态系统中被等同于VTK.
有关 VTK 库更多的介绍可访问 http://docs.enthought.com/mayavi/tvtk.
TVTK 在 windows 平台上暂时不能使用 pip 命令安装,建议使用文件安装,在其他平台可使用 pip 命令安装。

4.3 mayavi

虽然 VTK 3D 可视化软件包功能强大,Python 的 VTK 封装使用方便简洁,但是要用这些工具快速编写实用的三维可视化程序仍然需要花费不少精力。Mayavi 基于 VTK 开发,完全用 Python 编写,提供了一个更为方便实用的可视化软件,可以简洁地嵌入到用户编写的 Python 程序中,或者直接使用其面向脚本的 API 快速绘制三维可视化图形。值得注意的是,mayavi 也被称为 mayavi2.
有关 mayavi 库的更多介绍可访问 http://docs.enthought.com/mayavi/mayavi/.
mayavi 库在 Windows 平台上暂时不能使用 pip 命令安装,建议使用文件安装,在其它平台可使用 pip 命令安装。

5. 用户图形界面方向

Python 标准库内置了一个 GUI 库叫作 Tkinter, 这个库基于 TCI/TK 开发,然而这个库十分陈旧,提供的开发控制也很有限、编写出来的 GUI 风格与现代程序 GUI 风格相差甚远,从用户体验角度说,Tkinter 库并不成熟。
常用的 3 个高质量的用户图形界面 Python 生态库:PyQt5、wxPython、PyGTK.

5.1 PyQt5

PyQt5 是 Q5 应用框架的 Python 第三方库,它有超过 620 个类和近 6000 个函数和方法。它是Python 中最为成熟的商业级 GUI 第三方库。这个库是 Python 语言当前最好的 GUI 第三方库,它可以 Windows、Linux 和 MacOSX 等操作系统上跨平台使用。

PyQt5 采用“信号-槽”机制将事件和对应的处理程序进行绑定。简单说,信号就是事件,槽是事件的处理程序。例如,鼠标点击操作时信号,处理鼠标点击的程序时槽。一个信号可以连接多个槽,也可以不连接槽。信号可以连接其他信息。PyQt5 窗体有很多内置信息,也可以自定义信号。
有关 PyQt5 库的更多介绍可访问 https://www.riverbankcomputing.com/static/Docs/PyQt5/.
安装命令:

pip install PyQt5

5.2 wxPython

wxPython 是 Python 语言的一套优秀的 GUI 图形库,它是跨平台 GUI 库 wxWidgets 的 Python 封装,可以使用 Python 程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序。其中,wxWidgets 使用 C++ 语言编写,C/C++ 语言编写的功能库进行二次封装是 Python 语言的重要特点之一。
有关 wxPython 库的更多介绍可访问 https://wxpython.org/.
安装命令:

pip install wxPython

5.3 PyGTK

PyGTK 是基于 GTK+ 的 Python 语言封装,它提供了各式的可视化元素和功能,能够轻松构建具有图形用户界面的程序。PyGTK 具有跨平台性,利用它编写的代码能够不加修改地稳定运行在各操作系统中,如 Windows、MaxOS、Linux 等。
有关 PyGTK 库的更多可以访问 https://pypi.org/project/PyGTK/.
安装命令:

pip install pygtk

6. 机器学习方向

机器学习是人工智能领域的一个重要分支,Python 语言也是机器学习和人工智能的重要基础语言。常用的三个高质量的机器学习框架:scikit-learn、tensorFlow、theano.

6.1 scikit-learn

scikit-learn 是一个简单且高效的数据挖掘和数据分析工具,它基于 numpy、sciP 和 matplotlib构建。scikit-learn 项目最早由数据科学家 David Cournapeau 在 2007 年组织开发,它是 Python 语言中专门针对机器学习应用而发展起来的一款开源框架。scikit-learn 的基本功能主要包括 6 个部分:分类、回归、聚类、数据降维、模型选择和数据预处理。scikit-learn 也被称为 sklearn.
有关 scikit-learn 库更多的介绍可以访问 http://scikit-learn.org/.
安装命令:

pip install scikit-learn

6.2 tensorFlow

tensorFlow 是谷歌公司基于 DistBelief 进行研发的第二代人工智能学习系统,也是用来支撑著名 AlphaGo 系统后台框架,其命令来源于其自身的运行原理。tensor (张量) 指 N 维数组, Flow(流) 指基于数据流图的计算,tensorFlow 描述张量从流图的一端流动到另一端的计算过程。
tensorFlow 的应用十分广泛,从语音识别或图像识别到机器翻译或自主跟踪等,既可以运行在数万台服务器的数据中心,也可以运行在智能手机或嵌入式设备中。
有关 tensorFlow 库的更多介绍可以访问 http://www.tensorflow.org/.

6.3 theano

theano 为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组。theano 开发始于 2007 年,可以理解它是一个运算数学表达式的编辑器,并可以高效运行在 GPU 或 CPU 上。theano 是一个偏向底层开发的库,更像一个研究平台而不是单纯的深度学习库。

有关 theano 库的更多介绍可以访问 https://pypi.org/project/Theano/.
安装命令:

pip install theano

7. Web 开发方向

Web 开发是 Python 语言流行的一个重要方向,主要用于服务器后端开发。根据 Python Web 开发框架的复杂程序,常用的 Python 第三方生态库有:Django、Pyramid、Flask.

7.1 Django

Django 是 Python 生态中最流行的开源 Web 应用框架。Django 采用模型 (Model)、模板(Template) 和视图 (Views) 的编写模式,称为 MTV 模式。其中,模型即数据存取层,用于处理与数据相关的所有事务,包括如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等;模板即表现层、用于处理与表现相关的功能,通过模板方式定义页面风格,视图即业务逻辑层,用于存取模型及调取恰当模板的相关逻辑,是模型与模板的桥梁。
Django 中提供了开发网站经常用到的模块,Django 的开发理念是 DRY(Do not Repeat Yourself),用于鼓励快速开发、进而减少程序员建立一个高性能Web应用所花费的事件和精力,形成一种一站式解决方案。
有关 Django 库的更多介绍可以访问 http://www.djangoproject.com/.
安装命令:

pip install Django

7.2 Pyramid

Pyramid 是一个通用、开源的 Python Web 应用程序开发框架。它主要的目的是让 Python 开发者更简单地创建 Web 应用。相比 Django, Pyramid 是一个相对小巧、快速、灵活的开源 Python Web 框架。
与 Django 一样,Pyramid 仍然面向较大规模的 Web 应用,但它更关注灵活性,开发者可以灵活选择所使用的数据库、模板风格、URL 结构等内容。
有关 Pyramid 库的更多介绍可以访问 https://trypyramid.com/.
安装命令:

pip install pyramid

7.3 Flask

Flask 是轻量级 Web 应用框架,相比 Django 和 Pyramid, 它也被称为微框架。使用 Flask 开发Web 应用十分方便,甚至几行代码即可建立一个小型网站。Flask 核心十分简单,并不直接包含诸如数据库访问等的抽象访问层,而是通过扩展模块形式来支持。

8. 游戏开发方向

游戏开发是一个有趣的方向,在游戏逻辑和功能实现层面,Python 已经成为重要的支撑性语言。有 Python 中三个常用的生态库:Pygame、Panda3D、cocos2d.

8.1 Pygame

Pygame 是在 SQL 库基础上进行封装的、面向游戏开发入门的 Python 第三方库,除了制作游戏外,还用于制作多媒体应用程序。其中,SDL(Simple DirectMedia Layer) 是开源、跨平台的多媒体开发库,通过 OpenGL 和 Direct3D 底层函数提供对音频、键盘、鼠标和图形硬件的简洁访问。
Pygame 是一个游戏开发框架,提供了大量与游戏相关的底层逻辑和功能支持,非常适合作为入门库理解并实践游戏开发。
有关 Pygame 库的更多介绍可访问 https://www.pygame.org/.
安装命令:

pip install pygame

8.2 Panda3D

Panda3D 是一个开源、跨平台的 3D 渲染和游戏开发库,简单说,它是一个 3D 游戏引擎,由迪士尼和卡耐基.梅隆大学娱乐技术中心共同开发。Panda3D 支持 Python 和 C++ 两种语言,但对 Python 支持更全面。
Panda3D 支持很多当代先进游戏引擎所支持的特性,如法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等。
有关 Panda3D 库的更多介绍可访问 http://www.panda3d.org/.
安装命令:

pip install panda3d

8.3 cocos2d

cocos2d 是一个构建 2D 游戏和图形界面交互式应用的框架,它包括 C++、javascript、swift、Python 等多个版本。cocos2d 基于 OpenGL 进行图形渲染,能够利用 GPU 进行加速。cocos2d 引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为不同层,每个层处理并响应用户事件。

9. 更多第三方库

Python 语言有十几万个第三方库,覆盖信息技术几乎所有领域。即使在每个方向,也会有大量的专业人员开发多个第三方库来给出具体设计。除了本章所提到的方向外,还有以下几个第三方库也是比较常用的。

9.1 PIL

PIL 库是 Python 语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。使用 Python 语言处理图像相关的程序,首选 PIL 库。
PIL 库主要可以完成图像归档处理两方面功能需求。
图像归档:对图像进行批处理、生成图像预览、图像格式转换等。
图像处理:图像基本处理、像素处理、颜色处理等。
安装命令:

pip install pillow

9.2 SymPy

Sympy 是一个支持符号计算的 Python 第三方库,它是一个全功能的计算机代数系统。SymPy代码简洁、易于理解、支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概论与统计、物理学领域的计算和应用。
有关 SymPy 库的更多介绍可访问:http://www.sympy.org/.
安装命令:

pip install sympy

9.3 NLTK

NLTK 是一个非常重要的自然语言处理 Python 第三方库,它支持多种语言,尤其对中文支持良好。NLTK 可以进行语料处理、文本统计、内容理解、情感分析等各种应用,具备非常可靠的应用价值。
有关 NLTK 的更多介绍可访问 http://www.nltk.org/.

9.4 WeRoBot

WeRoBot 是一个微信公众号开发框架,也称为微信机器人框架。WeRoBot 可以解析微信服务器发来的消息,并将消息转换成 Message 或者 Event 类型。其中,表示用户发来的消息,如文本消息、图片消息:Event 则表示用户触发的事件,如关注事件、扫描二维码事件。在消息解析、转换完成之后,WebRoBot 会将消息转交给 Handler 进行处理,并将 Handler 的返回值给微信服务器,进而实现完成的微信机器人功能。
有关 WeRoBot 库的更多介绍可访问 http://werobot.readthedocs.io.
安装命令:

pip install werobot

9.5 MyQR

MyQR 是一个能够产生基本二维码、艺术二维码和动态效果二维码的 Python 第三方库。有关 MyQR 库的更多介绍可访问 https://github.com/syInsfar/qrcode.
安装命令:

pip install myqr

PDF 讲义下载链接如下:
链接:https://pan.baidu.com/s/1rc8d2_mmtci0o5vtCSl6rg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReadThroughLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值