<python>从入门到实践(7) --常用第三方库(持续更新)
常用的第三方库(持续更新)
安装第三方库
-
使用pip命令:在命令行中执行
命令 描述 pip install <库名> 安装指定的第三方库 pip install -U<库名> 使用-U标签更新已安装的指定第三方库 pip uninstall <库名> 卸载指定的第三方库 pip download <库名> 下载但不安装指定的第三方库 pip show <库名> 列出某个指定第三方库的详细信息 pip search <关键词> 根据关键词在名称和介绍中搜索第三方库 pip list 列出当前系统已经安装的第三方库 -
集成安装方法:结合特定python开发工具的批量安装,如Anaconda
-
文件安装方法:适用于有些库可以用pip下载,但是无法正确安装时
原因:某些第三方库pip下载后,需要编译后安装如果操作系统没有编译环境,则能够下载但不能安装,于是直接下载编译后的版本用于安装,应进入[此安装地址](http://www.lfd.uci.edu/ ~gohlke/ pythonlibs/)
常用第三方库
os库(较详细)
-
介绍:os库是python标准库,包含几百个函数,提供通用的、基本的与操作系统交互的功能
-
路径操作:使用os.path子库,进行操作和处理文件路径
函数 描述 os.path.abspath(path) 返回path在当前系统中的绝对路径 >>>os.path.abspath("file.txt") 'C:\Users\Tian
输出:Song\Python36-32\file.txt'os.path.normpath(path) 归一化path的表示形式,统一用\分隔路径 >>>os.path.normpath("D://PYE//file.txt")
输出'D:\PYE\file.txt'os.path.relpath(path) 返回当前程序与文件之间的相对路径 (relative path) >>>os.path.relpath("C://PYE//file.txt")
输出:'..\..\..\..\..\..\..\PYE\file.txt'os.path.dirname(path) 返回path中的目录名称 >>>os.path.dirname("D://PYE//file.txt")
输出:'D://PYE'os.path.basename(path) 返回path中最后的文件名称 >>>os.path.basename("D://PYE//file.txt")
输出: 'file.txt'os.path.join(path, *paths) 组合path与paths,返回一个路径字符串 >>>os.path.join("D:/", "PYE/file.txt")
输出: 'D:/PYE/file.txt'os.path.exists(path) 判断path对应文件或目录是否存在,返回True或False >>>os.path.exists("D://PYE//file.txt")
输出:Falseos.path.isfile(path) 判断path所对应是否为已存在的文件,返回True或False >>>os.path.isfile("D://PYE//file.txt")
输出: Trueos.path.isdir(path) 判断path所对应是否为已存在的目录,返回True或False >>>os.path.isdir("D://PYE//file.txt")
输出:Falseos.path.getatime(path) 返回path对应文件或目录上一次的访问时间 >>>os.path.getatime("D:/PYE/file.txt")
输出:1518356633.7551725os.path.getmtime(path) 返回path对应文件或目录最近一次的修改时间 >>>os.path.getmtime("D:/PYE/file.txt")
输出:1518356633.7551725os.path.getctime(path) 返回path对应文件或目录的创建时间 >>time.ctime(os.path.getctime("D:/PYE/file.txt"))
输出:'Sun Feb 11 21:43:53 2018'os.path.getsize(path) 返回path对应文件的大小,以字节为单位 >>>os.path.getsize("D:/PYE/file.txt")
输出:180768 -
进程管理
os.system(command)执行程序或命令command,在Windows系统中,返回值为cmd的调用返回信息(这里的command是命令行字符串)如;
os.system("C:\\Windows\\System32\\calc.exe")可以调用系统的计算器应用 -
环境参数:获取或改变系统环境信息
函数 描述 os.chdir(path) 修改当前程序操作的路径 >>>os.chdir("D:") os.getcwd() 返回程序的当前路径 >>>os.getcwd() 'D:\' os.getlogin() 获得当前系统登录用户名称 >>>os.getlogin() 'Tian Song' os.cpu_count() 获得当前系统的CPU数量 >>>os.cpu_count() 8 os.urandom(n) 获得n个字节长度的随机字符串,通常用于加解密运算 >>>os.urandom(10) b'7\xbe\xf2!\xc1=\x01gL\xb3'
random库
random库使用梅森旋转算法生成伪随机序列,主要用于生成各种随机数
-
基本随机数函数
种子:梅森随机算法需要特定的种子生成随机序列,如果不给出种子将会自动使用系统当前时间作为种子函数 描述 seed(a=None) 初始化给定的随机数种子(默认为系统时间) random() 生成一个介于0~1.0之间的随机浮点数 -
扩展随机数函数
函数 描述 randint(a, b) 生成一个介于[a, b]之间的整数 randrange(m, n[, k]) 生成一个介于[m, n]之间以k为步长的随机整数 getrandbits(k) 生成一个k比特长的随机整数(相当于用二进制限定随机范围) uniform(a, b) 生成一个[a, b]之间的随即小数 choice(seq) 从序列seq之间随机选择一个元素 shuffle(seq) 将序列seq中的元素随机排列,返回打乱后的序列
数据分析相关
Numpy
Numpy是表达N维数组的最基础库
- Python接口使用,C语言实现,计算速度优异;
- Python数据分析及科学计算的基础库,支撑Pandas等其他库;
- 提供直接的矩阵运算、广播函数、线性代数等功能。
pandas
Pandas是Python数据分析高层次应用库
- 提供了简单易用的数据结构和数据分析工具
- 理解数据类型与索引的关系,操作索引即操作数据
- Python最主要的数据分析功能库,基于Numpy开发
- 通过Series表达索引+一维数据的数据结构;DataFrame表达行列索引+二维数组的数据结构。
SciPy
SciPy是数学、科学和工程计算功能库
- 提供了一批数学算法及工程数据运算功能
- 类似Matlab,可用于如傅里叶变换、信号处理等应用
- Python最主要的科学计算功能库,基于Numpy开发
- 具有稀疏图压缩类、稀疏运算类、优化算法类、傅里叶变换类、信号处理类、线性代数类、图像处理类。
数据可视化相关
Matplotlib
Matplotlib是高质量的二维数据可视化功能库
- 提供了超过100种数据可视化展示效果
- 通过matplotlib.pyplot子库调用各可视化效果
- Python最主要的数据可视化功能库,基于Numpy开发
Seaborn
Seaborn是统计类数据可视化功能库
- 提供了一批高层次的统计类数据可视化展示效果
- 主要展示数据间分布、分类和线性关系等内容
- 基于Matplotlib开发,支持Numpy和Pandas
Mayavi
Mayavi是三维科学数据可视化功能库
- 提供了一批简单易用的3D科学计算数据可视化展示效果
- 目前版本是Mayavi2,三维可视化最主要的第三方库
- 支持Numpy、TVTK、Traits、Envisage等第三方库
文本处理
PyPDF2
PyPDF2是用来处理pdf文件的工具集
- 提供了一批处理PDF文件的计算功能
- 支持获取信息、分隔/整合文件、加密解密等
- 完全Python语言实现,不需要额外依赖,功能稳定
from PyPDF2 import PdfFileReader, PdfFileMerger
# 合并两个pdf
merger = PdfFileMerger()
input1 = open("document1.pdf", "rb")
input2 = open("document2.pdf", "rb")
merger.append(fileobj = input1, pages = (0,3))
merger.merge(position = 2, fileobj = input2, pages = (0,1))
output = open("document-output.pdf", "wb")
merger.write(output)
NLTK
NLTK是自然语言文本处理第三方库
- 提供了一批简单易用的自然语言文本处理功能
- 支持语言文本分类、标记、语法句法、语义分析等
- 最优秀的Python自然语言处理库
Python-docx
Python-docx创建或更新Microsoft Word文件的第三方库
- 提供创建或更新.doc .docx等文件的计算功能
- 增加并配置段落、图片、表格、文字等,功能全面
机器学习相关
Scikit-learn
Scikit-learn是机器学习方法工具集
- 提供一批统一化的机器学习方法功能接口
- 提供聚类、分类、回归、强化学习等计算功能
- 机器学习最基本且最优秀的Python第三方库
TensorFlow
TensorFlow是AlphaGo背后的机器学习计算框架
- 谷歌公司推动的开源机器学习框架
- 将数据流图作为基础,图节点代表运算,边代表张量
- 应用机器学习方法的一种方式,支撑谷歌人工智能应用
MXNet
MXNet是基于神经网络的深度学习计算框架
- 提供可扩展的神经网络及深度学习计算功能
- 可用于自动驾驶、机器翻译、语音识别等众多领域
- Python最重要的深度学习计算框架
网络爬虫相关
Requests
Requests是最友好的网络爬虫功能库
- 提供了简单易用的类HTTP协议网络爬虫功能
- 支持连接池、SSL、Cookies、HTTP(S)代理等
- Python最主要的页面级网络爬虫功能库
import requests
# 简单地爬取网络文本数据
r = requests.get('https://api.github.com/user',\
auth=('user', 'pass'))
r.status_code
r.headers['content-type']
r.encoding
r.text
Scrapy
Scrapy是优秀的网络爬虫框架
- 提供了构建网络爬虫系统的框架功能,功能半成品
- 支持批量和定时网页爬取、提供数据处理流程等
- Python最主要且最专业的网络爬虫框架
pyspider
pyspider是强大的Web页面爬取系统
- 提供了完整的网页爬取系统构建功能
- 支持数据库后端、消息队列、优先级、分布式架构等
- Python重要的网络爬虫类第三方库
Web信息提取
Beautiful Soup
Beautiful Soup是HTML和XML的解析库
- 提供了解析HTML和XML等Web信息的功能
- 又名beautifulsoup4或bs4,可以加载多种解析引擎
- 常与网络爬虫库搭配使用,如Scrapy、requests等
Re
Re是正则表达式解析和处理功能库
- 提供了定义和解析正则表达式的一批通用功能
- 可用于各类场景,包括定点的Web信息提取
- Python最主要的标准库之一,无需安装
Python-Goose
Python-Goose是提取文章类型Web页面的功能库
- 提供了对Web页面中文章信息/视频等元数据的提取功能
- 针对特定类型Web页面,应用覆盖面较广
- Python最主要的Web信息提取库
Web网站开发
Django
Django是最流行的Web应用框架,适合开发大型网页或Web应用
- 提供了构建Web系统的基本应用框架
- MTV模式:模型(model)、模板(Template)、视图(Views)
- Python最重要的Web应用框架,略微复杂的应用框架
Pyramid
Pyramid:是规模适中的Web应用框架
- 提供了简单方便构建Web系统的应用框架
- 不大不小,规模适中,适合快速构建并适度扩展类应用
- Python产品级Web应用框架,起步简单可扩展性好
Flask
Flask是Web应用开发微框架
- 提供了最简单构建Web系统的应用框架
- 特点是:简单、规模小、快速
- Django > Pyramid > Flask
网络应用开发
WeRoBot
WeRoBot是微信公众号开发框架
- 提供了解析微信服务器消息及反馈消息的功能
- 建立微信机器人的重要技术手段
aip
aip是百度AI开放平台接口
- 提供了访问百度AI服务的Python功能接口
- 语音、人脸、OCR、NLP、知识图谱、图像搜索等领域
- Python百度AI应用的最主要方式
MyQR
MyQR是二维码生成第三方库
- 提供了生成二维码的系列功能
- 基本二维码、艺术二维码和动态二维码
图形用户界面
PyQt5
PyQt5是Qt开发框架的Python接口
- 提供了创建Qt5程序的Python API接口
- Qt是非常成熟的跨平台桌面应用开发系统,完备GUI
- 推荐的Python GUI开发第三方库
wxPython
wxPython是跨平台GUI开发框架
- 提供了专用于Python的跨平台GUI开发框架
- 理解数据类型与索引的关系,操作索引即操作数据
- Python最主要的数据分析功能库,基于Numpy开发
PyGObject
PyGObject使用GTK+开发GUI的功能库
- 提供了整合GTK+、WebKitGTK+等库的功能
- GTK+:跨平台的一种用户图形界面GUI框架
- 实例:Anaconda采用该库构建GUI
游戏开发
PyGame
PyGame是简单的游戏开发功能库
- 提供了基于SDL的简单游戏开发功能及实现引擎
- 理解游戏对外部输入的响应机制及角色构建和交互机制
- Python游戏入门最主要的第三方库
Panda3D
Panda3D是开源、跨平台的3D渲染和游戏开发库
- 一个3D游戏引擎,提供Python和C++两种接口
- 支持很多先进特性:法线贴图、光泽贴图、卡通渲染等
- 由迪士尼和卡尼基梅隆大学共同开发
cocos2d
cocos2d是构建2D游戏和图形界面交互式应用的框架
- 提供了基于OpenGL的游戏开发图形渲染功能
- 支持GPU加速,采用树形结构分层管理游戏对象类型
- 适用于2D专业级游戏开发
虚拟现实
VR Zero
VR Zero是在树莓派上开发VR应用的Python库
- 提供大量与VR开发相关的功能
- 针对树莓派的VR开发库,支持设备小型化,配置简单化
- 非常适合初学者实践VR开发及应用
pyovr
pyovr是Oculus Rift的Python开发接口
- 针对Oculus VR设备的Python开发库
- 基于成熟的VR设备,提供全套文档,工业级应用设备
- Python+虚拟现实领域探索的一种思路
Vizard
Vizard是基于Python的通用VR开发引擎
- 专业的企业级虚拟现实开发引擎
- 提供详细的官方文档
- 支持多种主流的VR硬件设备,具有一定通用性
图形艺术
Quads
Quads是迭代的艺术
- 对图片进行四分迭代,形成像素风
- 可以生成动图或静图图像
- 简单易用,具有很高展示度
ascii_art
ascii_art: ASCII艺术库
- 将普通图片转为ASCII艺术风格
- 输出可以是纯文本或彩色文本
- 可采用图片格式输出

浙公网安备 33010602011771号