整理Python常用库

整理Python常用库

十二月 11, 2019 阅读 189 字数 11346 评论 0 喜欢 0

常用库名称简介

  • Chardet字符编码探测器,可以自动检测文本、网页、xml的编码。
  • colorama主要用来给文本添加各种颜色,并且非常简单易用。
  • Prettytable主要用于在终端或浏览器端构建格式化的输出。
  • difflib标准库,计算文本差异
  • Levenshtein,快速计算字符串相似度。
  • fuzzywuzzy,字符串模糊匹配。
  • esmre,正则表达式的加速器。
  • shortuuid,一组简洁URL/UUID函数库。
  • ftfy,Unicode文本工具7
  • unidecode,ascii和Unicode文本转换函数。
  • xpinyin,将汉字转换为拼音的函数库
  • pangu.py,调整对中日韩文字当中的字母、数字间距。
  • pyfiglet,Python写的figlet程序,使用字符组成ASCII艺术图片
  • uniout,提取字符串中可读写的字符
  • awesome slugify,一个Python slugify库,用于处理Unicode。
  • python-slugify,转换Unicode为ASCII内码的slugify函数库。
  • unicode-slugify,生成unicode内码,Django的依赖包。
  • ply,Python版的lex和yacc的解析工具
  • phonenumbers,解析电话号码,格式,存储和验证的国际电话号码。
  • python-user-agents,浏览器的用户代理(user-agents)的解析器。
  • sqlparse,SQL解析器。
  • pygments,一个通用的语法高亮工具。
  • python-nameparser,解析人名,分解为单独的成分。
  • pyparsing,通用解析器生成框架。
  • tablib,表格数据格式,包括,XLS、CSV,JSON,YAML。
  • python-docx,docx文档读取,查询和修改,微软Word 2007 / 2008的docx文件。
  • xlwt/xlrd,读写Excel格式的数据文件。
  • xlsxwriter,创建Excel格式的xlsx文件。
  • xlwings,利用Python调用Excel
  • csvkit,CSV文件工具包。
  • marmir,把Python[数据结构],转化为电子表格。
  • pdfminer,从PDF文件中提取信息。
  • pypdf2, 合并和转换PDF页面的函数库。
  • Python-Markdown,轻量级标记语言Markdown的Python实现。
  • Mistune,,快速、全功能的纯Python编写的Markdown解释器。
  • dateutil,标准的Python官方datetime模块的扩展包,字符串日期工具,其中parser是根据字符串解析成datetime,而rrule是则
  • 根据定义的规则来生成datetime。
  • arrow,更好的日期和时间处理Python库
  • chronyk,一个Python 3版函数库,用于解析人写的时间和日期。
  • delorean,清理期时间的函数库。
  • when.py,为见的日期和时间,提供人性化的功能。
  • moment,类似Moment.js的日期/时间Python库
  • pytz,世界时区,使用tz database时区信息[数据库]
  • BeautifulSoup,基于Python的HTML/XML解析器,简单易用, 功能很强大,即使是有bug,有问题的html代码,也可以解析
  • lxml,快速,易用、灵活的HTML和XML处理库,功能超强,在遇到有缺陷、不规范的xml时,Python自带的xml处理器可能无法解析。报错时- ,程序会尝试再用lxml的修复模式解析。
  • htmlparser,官方版解析HTML DOM树,偶尔搞搞命令行自动表单提交用得上。
  • pyyaml,Python版本的YAML解释器。
  • html5lib,-标准库,解析和序列化HTML文档和片段。
  • pyquery,类似jQuery的的HTML解释器函数库。
  • cssutils Python CSS库。
  • MarkupSafe,XML或HTML / XHTML安全字符串标记工具。
  • bleach,漂白,基于HTML的白名单函数库。
  • xmltodict,类似JSON的XML工具包。
  • xhtml2pdf,HTML / CSS格式转换器,看生成pdf文档。
  • untangle,把XML文档,转换为Python对象,方便访问

文件处理

  • Mimetypes,Python标准库,映射文件名到MIME类型。
  • imghdr,Python标准库,确定图像类型。python-magic,libmagic文件类型识别库,Python接口格式。path.py,os.path模块的二次封装。
  • watchdog,一组API和shell实用程序,用于监视文件系统事件。
  • Unipath,面向对象的文件/目录的操作工具包。pathlib,-(Python 3.4版已经作为Python标准库),一个跨平台,面向path的函数库。
  • pickle/cPickle,python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
  • cPickle是C语言实现的版本,速度更快。ConfigParser,Python标准库,INI文件解析器。configobj,INI文件解析器。config,分层次配置,logging作者编写。profig,多格式配置转换工具。logging,Python标准库,日志文件生成管理函数库。logbook,logging的替换品。Sentry,实时log服务器。Raven,哨兵Sentry的Python客户端。Sphinx,斯芬克斯(狮身人面像),Python文档生成器。
  • reStructuredText,标记语法和解析工具,Docutils组件。mkdocs,Markdown格式文档生成器。pycco,简单快速、编程风格的文档生成器。pdoc,自动生成的Python库API文档epydoc,从源码注释中生成各种格式文档的工具

图像处理

  • PIL(Python Image Library),基于Python的图像处理库,功能强大,对图形文件的格式支持广泛,内置许多图像处理函数,如图像增强、滤波[算法]等Pillow,图像处理库,PIL图像库的分支和升级替代产品。Matplotlib,著名的绘图库,提供了整套和matlab相似的命令API,用以绘制一些高质量的数学二维图形,十分适合交互式地进行制图。brewer2mpl,有一个专业的python配色工具包,提供了从美术角度来讲的精美配色。PyGame基于Python的多媒体开发和游戏软件开发模块,包含大量游戏和图像处理功能Box2d,开源的2d物理引擎,愤怒的小鸟就是使用了这款物理引擎进行开发的,Box2d物理引擎内部模拟了一个世界,你可以设置这个世界里的重力,然后往这个世界里添加各种物体,以及他们的一些物理特性,比如质量,摩擦,阻尼等等
    > Pymunk,类似box2d的开源物理图形模拟库OpenCV, 目前最好的开源图像/视觉库,包括图像处理和计算机视觉方面、机器学习的很多通用算法。SimpleCV,计算机视觉开源框架,类似opencv。
    VTK,视觉化工具函式库(VTK, Visualization Toolkit)是一个开放源码,跨平台、支援平行处理(VTK曾用于处理大小近乎1个Petabyte的资料,其平台为美国Los Alamos国家实验室所有的具1024个处理器之大型系统)的图形应用函式库。2005年时曾被美国陆军研究实验室用于即时模拟俄罗斯制反导弹战车ZSU23-4受到平面波攻击的情形,其计算节点高达2.5兆个之多。cgkit,Python Computer Graphics Kit,其module
    > 主要分两个部分:
    > – 与3d相关的一些python module 例如the vector, matrix and quaternion types, the RenderMan bindings, noise functions 这些模块可以在maya houdini nuke blender 等有Python扩展的程序中直接用;
    > – 提供完整的场景操作的module, 他类似其他三维软件,在内存中保留完整的描述场景的信息。不能直接用于maya 等CGAL,Computational Geometry Algorithms Library,计算几何算法库,提供计算几何相关的数据结构和算法,诸如三角剖分(2D约束三角剖分及二维和三维Delaunay三角剖分),Voronoi图(二维和三维的点,2D加权Voronoi图,分割Voronoi图等),多边形(布尔操作,偏置),多面体(布尔运算),曲线整理及其应用,网格生成(二维Delaunay网格生成和三维表面和体积网格生成等),几何处理(表面网格简化,细分和参数化等),凸壳算法(2D,3D和dD),搜索结构(近邻搜索,kd树等),插值,形状分析,拟合,距离等。Aggdraw,开源图像库,几乎涵盖了2d image操作的所有功能,使用起来非常灵活Pycairo,开源矢量绘图库Cairo开罗的python接口,cairo提供在多个背景下做2-D的绘图,高级的更可以使用硬件加速功能。wand,Python绑定魔杖工具(MagickWand),C语言API接口。thumbor, -智能成像工具,可调整大小和翻转图像。imgSeek,查询相似的图像。python-qrcode,纯Python的二维码(QR码)生成器。pyBarcode,创建条码,无需PIL模块。pygram,Instagram像图像过滤器。Quads,基于四叉树的计算机艺术。nude.py,裸体检测函数。scikit-image,scikit工具箱的图像处理库。hmap,图像直方图工具。bokeh,交互的Web绘图。plotly,Web协同的Python和Matplotlib绘制。vincent,文森特,Python Vega的函数库。d3py,Python绘图库,基于D3.JS, ggplot -API兼容R语言的ggplot2.Kartograph.py,在Python绘制漂亮的SVG地图。pygal, SVG图表的创造者。pygraphviz,Graphviz的Python接口。Fonttlools,ttf字体工具函数包,用于fontforge、ttx等字体软件。

游戏和多媒体

  • audiolazy,数字信号处理(DSP)的Python工具包。audioread,跨平台(GStreamer + Core Audio + MAD + FFmpeg)音频解码库。beets,音乐库管理。dejavu,音频指纹识别算法。
  • Dejavu 听一次音频后就会记录该音频的指纹信息,然后可通过麦克风对输入的音频进行识别是否同一首歌。django-elastic-transcoder,Django +亚马逊elastic转码。eyeD3,音频文件工具,特别是MP3文件包含的ID3元数据。id3reader,用于读取MP3的元数据。mutagen,处理音频元数据。pydub,-操纵音频和简单的高层次的接口。pyechonest,Echo Nest API客户端。talkbox,语音和信号处理的Python库。TimeSide,开放的网络音频处理框架。tinytag,读取音乐文件元数据,包括的MP3,OGG,FLAC和wave文件。m3u8,用于解析m3u8文件。
  • moviepy,多格式视频编辑脚本模块,包括GIF动画。shorten.tv,视频摘要。scikit视频,SciPy视频处理例程。GeoDjango,一个世界级的地理Web框架。geopy,Geo地理编码的工具箱。pygeoip,纯Python写的GeoIP API。GeoIP,Python API接口,使用高精度GeoIP Legacy Database数据库。geojson,GeoJSON函数库django-countries,一个Django程序,提供国家选择,国旗图标的静态文件,和一个国家的地域模型。Pygame,Python游戏设计模块。Cocos2d,2D游戏框架,演示,和其他的图形/交互应用,基于pyglet。Cocos2d- cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet.,PySDL2,SDL2的封装库。Panda3D- 3D游戏引擎,迪士尼开发。用C++写的,完全兼容Python。PyOgre,OGRE 3D渲染引擎,可用于游戏,模拟,任何3D。PyOpenGL,绑定OpenGL和它相关的API。PySFML,Python绑定SFMLRenPy,视觉小说引擎。

大数据与科学计算

  • SciPy,开源的Python算法库和数学工具包,SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。其功能与软件MATLAB、Scilab和GNU Octave类似。Numpy和Scipy常常结合着使用,Python大多数机器学习库都依赖于这两个模块。
  • pycuda/opencl,GPU高性能并发计算Pandas,python实现的类似R语言的数据统计、分析平台。基于NumPy和Matplotlib开发的,主要用于数据分析和数据可视化,它的数据结构DataFrame和R语言里的data.frame很像,特别是对于时间序列数据有自己的一套分析机制,非常不错。Open Mining,商业智能(BI),Pandas的Web界面。blaze,NumPy和Pandas大数据界面。
  • ScientificPython,一组经过挑选的Python程序模块,用于科学计算,包括几何学(矢量、张量、变换、矢量和张量场),四元数,自动求导数,(线性)插值,多项式,基础统计学,非线性最小二乘拟合,单位计算,Fortran兼容的文本格式,通过VRML的3D显示,以及两个Tk小工具,分别用于绘制线图和3D网格模型。此外还具有到netCDF,MPI和BSPlib库的接口。NumPy科学计算库,提供了矩阵,线性代数,傅立叶变换等等的解决方案, 最常用的是它的N维数组对象. NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。Cvxopt,最优化计算包,可进行线性规划、二次规划、半正定规划等的计算。Numba,科学计算速度优化编译器。pymvpa2,是为大数据集提供统计学习分析的Python工具包,它提供了一个灵活可扩展的框架。它提供的功能有分类、回归、特征选择、数据导入导出、可视化等NetworkX,复杂网络的优化软件包。zipline,交易算法的函数库。PyDy, Python动态建模函数库。
  • SymPy,符号数学的Python库。statsmodels,Python的统计建模和计量经济学。astropy,天文学界的Python库。orange,橙色,数据挖掘,数据可视化,通过可视化编程或Python脚本学习机分析。RDKit,化学信息学和机器学习的软件。Open Babel,巴贝尔,开放的化学工具箱。
  • cclib,化学软件包的计算函数库。Biopython,免费的生物计算工具包。bccb,生物分析相关的代码集。bcbio-nextgen,提供完全自动化、高通量、测序分析的工具包。visvis, 可视化计算模块库,可进行一维到四维数据的可视化。MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的MapReduce函数库。Framworks and libraries for MapReduce.,PySpark,Spark的Python API。dpark,Spark的Python克隆,Python中的MapReduce框架。luigi,为批量工作,建立复杂的管道。mrjob,运行在Hadoop,或亚马逊网络服务的,MapReduce工作。

人工智能与机器学习

  • NLTK(natural language toolkit),是python的自然语言处理工具包。2001年推出,包括了大量的词料库,以及自然语言处理方面的算法实现:分词, 词根计算, 分类, 语义分析等。Pattern,数据挖掘模块,包括自然语言处理,机器学习工具,等等。textblob,提供API为自然语言处理、分解NLP任务。基于NLTK和Pattern模块。jieba,结巴,中文分词工具。snownlp,用于处理中文文本库。

  • loso,中文分词函数库。genius,中文CRF基础库,条件随机场(conditional random field,简称 CRF),是一种鉴别式机率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列Gensim,一个相当专业的主题模型Python工具包,无论是代码还是文档,可用于如何计算两个文档的相似度LIBSVM,是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它[操作系统]上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。

  • scikits.learn,构建在SciPy之上用于机器学习的 Python 模块。它包括简单而高效的工具,可用于数据挖掘和数据分析。涵盖分类,回归和聚类算法,例如SVM, 逻辑回归,朴素贝叶斯,随机森林,k-means等算法,代码和文档都非常不错,在许多Python项目中都有应用。例如在我们熟悉的NLTK中,分类器方面就有专门针对scikit-learn的接口,可以调用scikit-learn的分类算法以及训练数据来训练分类器模型。PyMC,机器学习采样工具包,scikit-learn似乎是所有人的宠儿,有人认为,PyMC更有魅力。
  • PyMC主要用来做Bayesian分析。Orange,基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。侧重数据挖掘,可以用可视化语言或Python进行操作,拥有机器学习组件,还具有生物信息学以及文本挖掘的插件。Milk,机器学习工具箱,其重点是提供监督分类法与几种有效的分类分析:SVMs(基于libsvm),K-NN,随机森林经济和决策树。它还可以进行特征选择。这些分类可以在许多方面相结合,形成不同的分类系统。对于无监督学习,它提供K-means和affinity propagation聚类算法。
  • PyMVPA(Multivariate Pattern Analysis in Python),是为大数据集提供统计学习分析的Python工具包,它提供了一个灵活可扩展的框架。它提供的功能有分类、回归、特征选择、数据导入导出、可视化等NuPIC,开源人工智能平台。该项目由Grok(原名 Numenta)公司开发,其中包括了公司的算法和软件架构。NuPIC 的运作接近于人脑,“当模式变化的时候,它会忘掉旧模式,记忆新模式”。如人脑一样,CLA 算法能够适应新的变化。Pylearn2,-基于Theano的机器学习库。hebel,GPU加速,[深度学习]Python库。gensim,机器学习库。pybrain,机器学习模块,它的目标是为机器学习任务提供灵活、易应、强大的机器学习算法。
  • pybrain包括神经网络、强化学习(及二者结合)、无监督学习、进化算法。以神经网络为核心,所有的训练方法都以神经网络为一个实例Mahout,是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。Crab,灵活的,快速的推荐引擎。python-recsys,娱乐系统分析,推荐系统。vowpal_porpoise,Vowpal Wabbit轻量级Python封装。
  • Theano,用来定义、优化和模拟数学表达式计算,用于高效的解决多维数组的计算问题的python软件包。它使得写深度学习模型更加容易,同时也给出了一些关于在GPU上训练它们的选项

系统与命令行

  • threading,Python标准线程库,更高级别的线程接口。envoy,特使,Python子线程的函数库。sh,成熟的子线程替换函数库。sarge,封装线程。subprocess,调用shell命令的神器argparse,写命令行脚本必备,强大的命令行差数解析工具timeit,计算代码运行的时间等等unp,命令行工具,解压文件。eventlet开销很少的多线程模块,使用的是 green threads 概念,例如,pool = eventlet.GreenPool(10000) 这样一条语句便创建了一个可以处理 10000 个客户端连接的线程池。类似Gevent线程库Gevent,多线程模块pytools,著名的python通用函数、工具包SendKeys, 键盘鼠标操作模块, 模拟键盘鼠标模拟操作。
  • pyHook,基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。pstuil,跨平台地很方便获取和控制系统的进程,以及读取系统的CPU占用内存占用等信息.cement,一个轻量级的、功能齐全的命令行工具click,简单优雅的的命令行接口。clint,Python命令行工具。cliff,创造多层次指令的命令行程序框架
  • Clime, 可以转换任何模块为多的CLI命令程序,无任何配置。docopt,Python命令行参数分析器。pycli,命令行应用程序,支持的标准命令行解析,测井,单元[测试]和功能测试。Gooey,打开命令行程序,作为为一个完整的GUI应用程序,cookiecutter,命令行工具,从cookiecutters(项目模板)创建项目。例如,Python包项目,jQuery插件项目。percol,为UNIX传统管道pipe命令,添加交互式选择风格。rainbowstream,聪明和漂亮的推特客户终端。Django Models,Django的一部分SQLAlchemy,Python SQL工具包和对象关系映射。peewee,小型的ORM解析器。PonyORM,为ORM提供了一种面向SQL的接口。MongoEngine,Python对象文件映射,使用[MongoDB]。, Django MongoDB引擎MongoDB , Django后台。django-mongodb-engine,Django后台.redisco,一个简单的模型和容器库,使用[Redis]flywheel,Amazon DynamoDB对象映射。
  • butterdb,谷歌电子表格的ORM,Python版。celery,芹菜,异步任务队列/工作,基于分布式消息队列。huey,休伊,轻量级,多线程任务队列。mrq,队列先生,分布式任务队列,使用redis & Gevent。rq,简单的工作队列。Queue,Queue模块可以用来实现多线程间通讯,让各个线程共享数据,生产者把货物放到Queue中,供消费者(线程)去使用。
  • simpleq,简单的,可扩展的队列,Amazon SQS基础队列。Psyco,超强的python性能优化工具,psyco 的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升 40% 或更多,真可谓是立竿见影!如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco 或许能让他立即改变看法。psyco 堪称 Python 的 jit。fn.py,Python函数编程:缺失的功能享受FP的实现。funcy,函数编程工具。
  • Toolz,函数编程工具:迭代器、函数,字典。CyToolz,Toolz的Cython实现,高性能的函数编程工具。Ansible,安塞波,极为简单的自动化平台。
  • SaltStack,基础设施的自动化管理系统。Fabric,织物,一个简单,远程执行和部署的语言工具。Fabtools,Fabric的工具函数。cuisine,热门的Fabric的工具函数。psutil,跨平台的过程和系统工具模块。pexpect,控制互动节目。
  • provy,易于使用的配置系统的Python。honcho,Foreman的Python接口,用于管理procfile应用工具。gunnery,多任务执行工具,与网络接口的分布式系统。fig,快速。独立的开发环境中使用泊坞窗。APScheduler,轻量级、但功能强大的在线任务调度程序。django-schedule,Django日程应用程序。doit,任务流道/生成工具。
  • Joblib,Python提供的轻量级的流水线工具函数。Plan,简易生成crontab文件。
  • Spiff,纯Python实现的,功能强大的工作流引擎。
  • schedule,Python作业调度。TaskFlow,有助于使任务执行简单。
  • ctypes,Python标准库,速度更快,Python调用C代码的外部函数接口。cffi,Python调用C代码外部函数接口,类似于ctypes直接在python程序中调用c程序,但是比ctypes更方便不要求编译成so再调用。Cytoolz,python 加速库SWIG,简化封装和接口生成器。,Cython,Python优化静态编译器。PyPy,Python解释器的 Python实现。
  • Stackless Python,一个增强版本的Python。它使程序员从基于线程的编程方式中获得好处,并避免传统线程所带来的性能与复杂度问题。Stackless为 Python带来的微线程扩展,是一种低开销、轻量级的便利工具Pyston,使用LLVM和现代JIT技术,对python进行性能优化。
  • pythonlibs,非官方的Windows(32 / 64位)的Python扩展包scapy,优秀的数据包处理库。ino,Arduino命令行工具。Pyro,Python的机器人工具包。pluginbase,一个简单而灵活的Python的插件系统。itsdangerous,数据安全传输工具。blinker,快速Python中的信号/事件调度系统。pychievements,用于创建和跟踪成果框架。python-patterns,Python中的设计模式。pefileWindows PE文件解析器SIP,自动为C和C++库生成Python扩展模块的工具

发表评论

电子邮件地址不会被公开。 必填项已用*标注