numpy是Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组,简称”数组”。这个库可用来存储和处理大型矩阵,比Python语言提供的列表结构要高效得多。numpy提供了许多高级的数值编程工具,如矩阵计算、矢量处理、N维数据变换等。
PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成对图形的缩放、剪裁、叠加以及向图像添加线条、图形和文字等。
PIL库可以完成图像归档和图形处理两方面功能需求。
Python语言中Web开发框架第三方库有:Flask、Django、Pyramid,而mayavi是python语言中数据可视化方向的第三方库。
Python网络爬虫领域的第三方库:scrapy和request。
numpy是Python语言中数据分析方向的第三方库,openpyxl是python语言中文本处理方向的第三方库,PyQt5是Python语言中用户图形界面方向的第三方库。
Python语言中数据分析方向的第三方库:numpy、scipy、pandas,而PIL第三方库可以完成图像归档和图形处理两方面功能需求。pandas用于数据分析
属于机器学习领域:PyTorch,MXNet,Tensorflow
Aracde是图形库
scrapy是Python语言中网络爬虫方向的第三方库,而numpy、scipy和pandas是Python语言中数据分析方向的第三方库,matplotlib是数据可视化方向的第三方库,也属于数据分析领域
Python语言中第三方库有三种安装方式:pip工具安装、自定义安装、文件安装,而pygame、PyQt5、pyinstaller是python语言中的第三方库。
Python语言中机器学习方向的第三方库有Tensorflow、Theano、scikit-learn,而numpy、pandas是数据分析方向的第三方库,pygame是游戏开发方向的第三方库。
Python语言中开发用户界面方向的第三方库:PyQt5、wxPython、PyGTK,而turtle库是python的标准库之一。
Python语言中数据分析方向的第三方库:numpy、scipy、pandas。Seaborn
Python语言中数据可视化析方向的第三方库:matplotliB、TVTK、mayavi。
mxnet是Python语言中深度学习方向的第三方库。
Python语言中Web开发框架第三方库有Flask、Django、Pyramid,而scrapy是python网络爬虫方向的第三方库。
Beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。
random库采用梅森旋转算法(Mersenne twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。
于计算机视觉领域:OpenCV是一个强大的图像和视频工作库。它提供了多种程序接口,支持跨平台(包括移动端)应用。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎,如人脸识别
PyQt5库是Python语言当前最好的GUI(用户图形界面)第三方库,它可以在Windows、Linux和MacOS X等操作系统上跨平台使用。
人工智能领域:mxnet,keras,pytorch
Django:Web开发方向
NLTK:自然语言处理工具包
Luminoth:计算机视觉工具包
redis-py:数据存储
网络爬虫领域:Scrapy、Requests、PySpider。
SnowNLP用于处理中文文本内容。
Web开发方向:Tornado、Pyramid、Django。
Python语言中Web开发框架第三方库有Flask、Django、Pyramid。
pandas是数据分析的一个核心框架,集成了数据结构化和数据清洗以及分析的一些方法。pandas在numpy的基础上新增了三个数据类型,Series、DataFrame、Panel。可以进行高效的时间序列分析以及金融数据分析。
Pyinstaller命令的常用参数:
-h,–help:查看帮助
–clean:清理打包过程中的临时文件
-D,–onedir:默认值,生成dist目录
-F,–onefile:在dist文件夹中只生成独立的打包文件
-i<图标文件名.ico>:指定打包程序使用的图标(icon)文件
第11章Python第三方库纵览
11.1网络爬虫方向
网络爬虫是自动进行HTTP 访问并捕获HTML页面的程序。Python语言提供了多个具备网络爬虫功能的第三方库。
11.1.1requests
requests库是一个简洁且简单的处理HTTP请求的第三方库,其最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python语言的urllib3库基础上,类似这种在其他函数库之上再封装功能提供更友好函数的方式在Python语言中十分常见。在Python生态圈里,任何人都有通过技术创新或体验创建新发表意见和展示才华的机会。
Requests库支持非常丰富的链接访问功能,包括国际域名和URL获取、HTTP长连接和连接缓存、HTTP会话和 cookie 保持、浏览器使用风格的SSL 验证、基本的摘要认证、有效的键值对cookie记录、自动解压缩、自动内容解码、文件分块上传、HTTP(S)代理功能、连接超时处理、流数据下载等。
有关requests库的更多可访问http://www.python-requests.org安装语法为:
python35 -m pip install requests -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
requests库提供了7个函数,用来表示对一个网页的HTTP请求,requests库的常用函数:
requests.request():构造一个请求,支撑以下各方法的基础方法
requests.get():获取HTML 网页的主要方法,对应于HTTP的GET
requests.head():获取HTML 网页头的主要方法,对应于HTTP的HEAD
requests.post():向HTML 网页提交POST请求的方法,对应于HTTP的POST
requests.put():向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch():向HTML 网页提交局部修改请求,对应于HTTP的PATCH
requests.delete():向HTML页面提交删除请求,对应于HTTP的DELETE
1 | import requests |
11.1.2scrapy
Scrapy是Python开发的一个快速的、高层次的 Web获取框架。不同于简单的网络爬虫功能,scrapy框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能,它是一个半成品,任何人都可以根据需求方便地利用框架已有功能经过简单扩展实现专业的网络爬虫系统。
Scrapy用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域。Scrapy提供URL队列、异步多线程访问、定时访问、数据库集成等众多功能,基于它构建的爬虫系统可以7*24运行,具备产品级运行能力。
有关scrapy库的更多介绍可以访问https://scrapy.org/
python35-m pip install scrapy-i http://pypi.douban.com/simple--trusted-host pypi.douban.com
Scrapy框架结构,通过扩展函数完善功能后,可以利用这套框架实现对 Web页面不间断的获取。由于scrapy框架质量很高,可以用于产品设计和开发。
scrapy架构原理图
11.2 数据分析方向
数据分析是PYthon的一个优势方向,具有大批高质量的第三方库
11.2.1numpy
Numpy是 Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组(ndarray)简称“数组”。这个库可用来存储和处理大型矩阵,比 Python语言提供的列表结构要高效很多。Numpy提供了许多高级的数值编程工具,如矩阵运算、矢量运算、N维数据变换等。
Numpy内部是c语言编写,对外采用Python语言进行封装。因此,在进行数据运算时,基于numpy的 Python程序可以达到接近c语言的处理速度。Numpy也成为Python数据分析方向各其他库的基础依赖库,已经成了科学计算事实上的“标准库”。
有关numpy库的更多介绍可访问: http://www.numpy.org/
安装语法:
python35-m pip install numpy -i http://pypi.douban.com/simple--trusted-host pypi.douban.com
11.2.2scipy
Scipy是一款方便、易用、专为科学和工程设计的 Python 工具包,它在是numpy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。它包括统计、优化、整合、线性代数、傅立叶变换、信号分析、图像处理、常微分方程求解等众多模块。顾名思义,scipy主要用于科学和工程计算。
有关scipy库的更多介绍可访问:htts://scipy.org
安装语法:
python35-m pip install scipy -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.2.3pandas
pandas是基于numpy扩展的一个重要第三方库,它是为了解决数据分析任务而创建的。pandas提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需要的工具。
Pandas最初被作为金融数据分析工具而开发,因此,pandas为时间序列分析提供了很好的支持。Pandas的名称来自面板数据(panel data)和 Python数据分析(data analysis)。Panel data是经济学中关于多维数据集的一个术语。Pandas 提供两种最基本的数据类型:Series和 DataFrame ,分别代表一维数组和二维数组类型。
有关scipy库的更多介绍可访问:http://pandas.pydata.org
安装语法:
python35-m pip install pandas -i http://pypi.douban.com/simple--trusted-host pypi.douban.com
11.3文本处理方向
Python语言非常适合处理文本,因此,在这个方向也形成了大量有价值的第三方库。常用的有pdfminer、penpyxl、python-docx、beautifulsoup4。
11.3.1pdfminer
pdfminer是一个可以从PDF 文档中提取各类信息的第三方库。与其他PDF相关的工具不同,它能够完全获取并分析PDF的文本数据。pdfminer能够获取 PDF中文本的准确位置、字体、行数等信息,能够将PDF 文个把转为HTML及文本格式。pdfminer包含两个重要的工具: pdf2txt.py和dumppdf.py。
pdf2txt.py能够从PDF 文件中提取所有文本内容。dumppd.py能够把PDF文件内容变成XML格式,并进一步提取其中的图片。
在关pdfminer 库的更多介绍可访问https://euske.github.io/pdfminer/
安装语法:
python35-m pip install pdfminer -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.3.2openpyxl
Openpyxl是一个处理Microsoft Excel文档的Python第三方库,它支持读写Excel的xls、xlsx、xlsm、xltx、xltm等格式文件,并进一步能处理Excel文件中的工作表、表单和数据单元。
有关openpyxl库的更多介绍可访问http://openpyxl.readthedocs.io/
安装语法:python35 -m pipinstall openpyxl -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.3.3python-docx
Python-docx是一个处理Microsoft Word文档的 Python第三方库,它支持读取、查询以及修改doc、docx等格式文件,并能够对Word常见样式进行编程设置,包括字符样式、段落样式、表格样式、页面样式等,进一步可以使用这个库实现添加和修改文本、图像.样式和文档等功能。
有关python-docx库的更多介绍可访问https://pypi.python.org/pypi/python-docx安装语法:python35 -m pip install python-docx -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.3.4beautifulsoup4
beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。
需要注意,它不是BeautifulSoup库。它的最大优点是能根据HTML和 XML语法建立解析树,进而高效解析其中的内容。
HTML建立的Web页面一般非常复杂,除了有用的内容信息处,还包括大量用于页面格
11.4数据可视化方向
数据可视化是指根据数据特点将其展示为易于理解的图形的过程。Python语言在数据可视化方面具有较强的优势。常用的有matplotlib、TVTK、mayavi。
11.4.1matplotlib
Matplotlib是提供数据绘图功能的第三方库,主要进行二维图表数据展示,广泛用于科学计算的数据可视化。使用这个库可以利用Pyhton程序绘制超过100种数据可视化效果。
有关matplotlib库的更多介绍可访问http://matplotlib.org/安装语法:python35 -m pip install matplotlib -i http://
pypi.douban.com/simple –trusted-hostpypi.douban.com
11.4.2TVTK
TVTK库是在标准的VTK库之上用Traits库进行封装的Python第三方库。视觉工具函数库(Visualization Toolkit,VTK)是一个开源、跨平台、支持平行处理的图形应用函数库,它是专业可编程的三维可视化工具。TVTK在Python生态系统中被等同于VTK。
windows平台不能使用pip命令安装,可以通过文件安装,其他平台可以
11.4.3mayavi
虽然VTK 3D可视化软件包功能强大,Python的TVK封装使用方便简洁,但是要用这些工具快速编写实用的三维可视化程序仍然需要花费不少精力。Mayavi基于TVK开发,完全用Python 编写,提供了一个更为方便实用的可视化软件,可以简洁地嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API快速绘制三维可视化图形。值得注意的是mayavi也被称为,mayavi2。
有关mayavi’*库的更多介绍可访问http://docs.enthought.com/mayavi/mayavi/
mayavi库在 Windows平台上暂时不能使用pip命令安装,建议使用文件安装,在其它平台可使用pip命令安装。
11.5用户图形界面方向
Python标准库内置了一个GUl库—Tkinter,这个库基于Tcl/Tk开发,然而这个库十分陈旧,提供的开发控制也很有限、编写出来的GUI风格与现代程序GUI风格相差甚远,从用户体验角度说,Tkinter库并不成熟。
常用的3个高质量的用户图形界面Python生态库:PyQt5、wxPython、PyGTK
11.5.1PyQt5
PyQt5是Q5应用框架的Python第三方库,它有超过620个类和近6000个函数和方法。它是Python中最为成熟的商业级GUI第三方库。这个库是Python语言当前最好的GUI第三方库,它可以 Window、Linux和 MacOSx等操作系统上跨平台使用。
PyQt5采用“信号-槽”机制将事件和对应的处理程序进行绑定。简单说,信号就是事件、槽是事件的处理程序。例如,鼠标点击操作是信号,处理鼠标点击的程序是槽。一个信号可以连接多个槽,也可以不连接槽。信号可以连接其他信息。PyQt5窗体有很内置信息,也可以自定义信号。
有关PyQt5库的更多介绍可访问 https://www.riverbank.computing.com/software/pyqt/安装语法:python35-m pip install pyqt5 -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.5.2wxPython
wxPython是 Python语言的一套优秀的GUI图形库,它是跨平台GUI库 wxWidgets的Python封装,可以使用Python程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序。其中, wxWidgets使用C++语言编写,C/C++语言编写的功能库进行二次封装是Python语言的重要特点之一。
有关wxPython库的更多介绍可访问https://wxpython.org/安装语法:python35 -m pip install wxPython -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.5.3PyGTK
PyGTK是基于GTK+的Python语言封装,它提供了各式的可视元素和功能,能够轻构创建具有图形用户界面的程序。PyGTK具有跨平台性,利用它编写的代码能够不加修改地稳定运行在各操作系统中,如Windows、MacOS、Linux 等。
有关PyGTK库的更多介绍可访问http://www.pygtk.org安装语法:python35-m pip install pygtk-i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.6机器学习方向
机器学习是人工智能领域的一个重要分支,Python 语言也是机器学习和人工智能的重要基础语言。常用的三个高质量的机器学习框架: scikit-learn、TensofFlow、Theano。
11.6.1scikit-learn
scikit-learn是一个简单且高效的数据挖掘和数据分析工具,它基于NumPy、SciP和matplotplib构建。 scikit-learn项目最早由数据科学家David Cournapeau在2007年组织开发,它是Python语言中专门针对机器学习应用而发展起来的一款开源框架。scikit-learn的基本功能主要包括6个部分:分类、回归、聚类、数据降维、模型选择和数据预处理。scikit-learn也被称为sklearn。
有关scikit-learn库更多的介绍可访问http://scikit-learn.org/安装语法:python35 -m pipinstall scikit-learn -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.6.2TensorFlow
TensorFlow是谷歌公司基于DistBelief进行研发的第二代人工智能学习系统,也是用来支撑著名AlphaGo系统后台框架,其命名来源于其自身的运行原理。Tensor(张量)指N维数组,Flow(流)指基于数据流图的计算,TensorFlow描述张量从流图的一端流动到另一端的计算过程。
TensorFlow的应用十分广泛,从语音识别或图像识别到机器翻译或自主跟踪等,既可以运行在数万台服务器的数据中心,也可以运行在智能手机或嵌入式设备中。
有关TensorFlow库的的更多介绍可访问http://www.tensorflow.org/
11.6.3Theano
Theano为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组
Theano开发始于2007年,可以理解它是一个运算数学表达式的编译器,并可以高效运行在GPU或CPU上。Theano是一个偏向底层开发的库,更像一个研究平台而单纯的深度学习库。
有关Theano 库的更多介绍可访问http://deeplearning.net/software/theano/安装语法:python35-m pip install theano-i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.7Web开发方向
Web开发是Python语言流行的一个重要方向,主要用于服务器后端开发。根据 PythonWeb开发框架的复杂程序。常用的 Python第三方生态度有:Django、Pyramid、Flask。
11.7.1Django
Django是Python生态中最流行的开源Web应用框架。Django采用模型(Model>、模板(Template)和视图(Views)的编写模式,称为MTⅣ模式。其中,模型即数据存取层,用于处理与数据相关的所有事务,包括如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等;模板即表现层,用于处理与表现相关的功能,通过模板方式定义页面风格;视图即业务逻辑层,用于存取模型及调取恰当模板的相关逻辑,是模型与模板的桥梁。
Django中提供了开发网站经常用到的模块,Django 的开发理念是DRY (Don’t Repeat Yourself),用于鼓励快速开发、进而减少程序员建立一个高性能 Web 应用所花费的时间和精力,形成一种一站式解决方案。
有关Django库的更多介绍可访问https://www.djangoproject.com/安装语法:python35-m pip install django-i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.7.2Pyramid
Pyramid是一个通、开源的Python Web应用程序开发框架。它主要的目的是让Python开发者更简单地创建Web应用。相比 Django,Pyramid是一个相对小巧、快速、灵活的开源PythonWeb框架。
与Django一样,Pyramid仍然面向较大规模的Web应用,但它更关注灵活性,开发者可以灵活选择所使用的数据库、模板风格、URL结构等内容。
有关Pyramid 库的更多介绍可访问https://trypyramid.com/安装语法:python35 -m pip install pyramid -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.7.3Flask
Flask是轻量级 Web应用框架,相比Django和 Pyramid,它也被称为微框架。使用Flask开发 Web应用十分方便,甚至几行代码即可建立一个小型网站。Flask核心十分简单,并不直接包含诸如数据库访问等的抽象访问层,而是通过扩展模块形式来支持。
有关Flask 库的更多介绍可访问http://flask.pocoo.org/安装语法:python35-m pip install flask -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
11.8游戏开发方向
游戏开发是一个有趣的方向,在游戏逻辑和功能实现层面,Python已经成为重要的支撑性语言。有Python中有三个常用的生态库:Pygame、Panda3D、cocos2d。
11.8.1Pygame
Pygame是在SDL库基础上进行封装的、面向游戏开发入门的Python第三方库,除了制作游戏外,还用于制作多媒体应用程序。其,中 sDL (Simple DirectMedia Layer)是开源、跨平台的多媒体开发库,通过 OpenGL和 Direct3D底层函数提供对音频、键盘、鼠标和图形硬件的简洁访问。
Pygame是一个游戏开发框架,提供了大量与游戏相关的底层逻辑和功能支持,非常适合作为入门库理解并实践游戏开发。
有关Pygame 库的更多介绍可访问http://www.pygame.org安装语法:python35 -m pip install pygame -i http://pypi.douban.com/simple —trusted-hostpypi.douban.com
11.8.2Panda3D
Panda3D是一个开源、跨平台的3D渲染和游戏开发库,简单说,它是一个 3D游戏引擎,由迪士尼和卡耐基.梅隆大学娱乐技术中心共同开发。Panda3D支持 Python和C++两种语言,但对Python支持更全面。
Panda3D支持很多当代先进游戏引擎所支持的特性,如法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等。
有关Panda3D库的更多介绍可访问http://www.panda3d.org安装语法:python35 -m pipinstall panda3d -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
python35 -m pipinstall panda3d -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.8.3cocos2d
Cocos2d是一个构建2D游戏和图形界面交互式应用的框架,它包括C++、JavaScript .Swift、Python等多个版本。Cocos2d基于OpenGL进行图形渲染,能够利用GPU进行加速。Cocos2d引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为不同层,每个层处理并响应用户事件。
11.9更多第三方库
Python语言有十几万个第三方库,覆盖信息技术几乎所有领域。即使在每个方向,也会有大量的专业人员开发多个第三方库来给出具体设计。除了本章所提到的方向外,还有以下几个第三方库也是比较常用的。
11.9.1PIL
PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成对图像的缩放、剪截、叠加以及向图像添加线条、图像和文字等操作。使用Python语言处理图像相关的程序,首选PIL库。
PIL库主要可以完成图像归档和图像处理两方面功能需求。
图像归档:对图像进行批处理、生成图像预览、图像格式转换等。图像处理:图像基本处理、像素处理、颜色处理等。
有关PIL库的更多介绍可访问http://pillow.readthedocs.io安装语法:python35 -m pip install pillow -i http://pypi.douban.com/simple –trusted-hostpypi.douban.com
11.9.2SymPy
SymPy是一个支持符号计算的Python第三方库,它是一个全功能的计算机代数系统。SymPy代码简洁、易于理解、支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概论与统计、物理学领域的计算和应用。
有关SymPy库的更多介绍可访问:http://www.sympy.org/
安装语法:python35-m pip install sympy -i http://pypi.douban.com/simple--trusted-host pypi.douban..com
11.9.3NLTK
NLTK是一个非常重要的自然语言处理Python第三方库,它支持多种语言,尤其对中文支持良好。NLTK可以进行语料处理、文本统计、内容理解、情感分析等我种应用,具备非常可靠的应用价值。
有关NLTK的更多介绍可访问http://www.nltk.org/
11.9.4WeRoBot
WeRoBot是一个微信公众号开发框架,也称为微信机器人框架。WeRoBot可以解析微信服务器发来的消息,并将消息转换成Message或者Event类型。其中,表示用户发来的消息,如文本消息、图片消息:Event则表示用户触发的事件,如关注事件、扫描二维确事件。在消息解析、转换完成后。WeRoBot 会将消息转交给Handler进行处理,并将Handler 的返回值给微信服务器,进而实现完整的微信机器人功能。
有关 WeRoBot库的更多介绍可访问http://werobot.readthedocs.io安装语法:
python35 -m pipinstall werobot -i http;//pypi.douban.com/simple –trusted-hostpypi.douban.com
11.9.5MyQR
MyQR是一个能够产生基本二维码、艺术二维码和动态效果二维码的Python第三方库。有关MyQR库的更多介绍可访问https://github.com/sylnsfar/qrcode
安装命令:
python35-m pip install myqr-i http://pypi.douban.com/simple--trusted-host pypi.douban.com
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~