中企动力 > 头条 > python有什么库

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python有什么库

盘点 | 2016年年度十大Python库 行业视频课程

img

宋芫

关注

选自tryolabs

机器之心编译

参与:李亚洲、吴攀、李泽南


圣诞将至,又到了年终盘点时间,Tryo Labs 和去年一样又推出了一份 2016 年十大 Python 库的榜单。对于这份榜单的筛选条件,Tryo Labs 写道:「我们避开了 Django、Flask 等已经成为今天的标准库的已经成功的项目。另外,这个榜单中有的库是 2016 年之前建立的,但它们在今年的受欢迎度出现了暴增或我们认为它们非常好所以可以进入这个榜单。」下面是榜单详情:

1. Zappa

链接:https://zappa.io/

自 AWS Lambda(以及后续的其它项目)发布以来,人们的关注点就全部转移到了无服务器架构上。这些架构让我们可以将微服务(microservice)部署到云端、部署到一个完全可管理的环境中;在这样的环境中,人们不用关心管任何服务器,而只需要分配无状态的、短暂的计算容器(computing container)即可——一个服务提供商即可完全管理。通过这一范式,事件(比如流量尖峰)可以触发更多这些容器的执行,因此有可能能够处理「无限的」水平扩展。

Zappa 是一个用于 Python 的无服务器框架,尽管(至少目前)它仅支持 AWS Lambda 和 AWS API Gateway。它使得开发这样架构的应用变得非常简单,能将你从使用 AWS Console 或 API 的繁琐配置工作中解放出来,而且它还有各种用于简化部署和管理不同环境的命令。


2. Sanic + uvloop

链接:

Sanic: https://github/channelcat/sanic

uvloop: https://magic.io/blog/uvloop-blazing-fast-python-networking/

谁说 Python 不能很快?Sanic 不仅有可能是有史以来最好的软件库名字,也可能是有史以来最快的 Python 网页框架,而且似乎也远远超过其它框架。它是一个专为速度而设计的类 Flask 的 Python 3.5+ 网页服务器。另一个库 uvloop 是一个用于 asyncio 的事件循环(event loop,其底层使用了 libuv)的超快速的插件替代。这两个加起来就是一个强大的组合!

根据 Sanic 的作者的基准测试,uvloop 可以驱动 Sanic 每秒处理超过 3.3 万条请求,这实在太强了!(比 node.js 还快)。你的代码可以受益于这种新的 async/await 语法——它们会看起来很整洁;此外我们也喜欢 Flask 风格的 API。你一定要试试 Sanic,而且如果你也在使用 asyncio,你也可以无需太多修改你的代码就能受益于 uvloop。


3. asyncpg

链接:https://github/MagicStack/asyncpg

跟进 asyncio 框架的最新进展,来自 MagicStack 的人为我们带来了这个高效的异步(目前只支持 CPython 3.5)数据库接口库,其是专门为 PostgreSQL 设计的。它有零相关性,这意味不需要安装 libpq。相对而言,withpsycopg2(最流行的 Python 的 PostgreSQL 适配器)需要以文本格式与数据库服务器交换数据;而 asyncpg 则实现了 PostgreSQL 二进制 I/O 协议,这让其不仅支持通用类型,而且还有其它许多性能上的好处。

其基准是很清楚的:asyncpg 平均至少比 psycopg2(或 aiopg)快 3 倍,也比 node.js 和 Go 实现更快。


4. boto3 

链接:https://github/boto/boto3

如果你的基础设施部署在 AWS 上或使用了它们的服务(比如 S3),那么你应该非常乐意看到 boto(用于 AWS API 的 Python 接口)被从头到尾完整重写了。而且你不用一次性就完全迁移你的应用:你可以同时使用 boto3 和 boto(2) ;比如仅在你应用中新的部分使用 boto3。

这个新的实现在不同的服务间会一致的多,而且因为其使用了数据驱动的方法来在运行时间(runtime)从 JSON 描述文件中生成类,所以其总是可以实现快速更新。再也不用滞后于新的 Amazon API 功能了,赶紧使用 bot3 吧!


5.TensorFlow

链接:https://tensorflow.org/

大名鼎鼎的 TensorFlow。自从谷歌在 2015 年 11 月发布以来,这个库已经获得了很多改进,它已成为时下最流行的 GitHub Python 库。简而言之,TensorFlow 是一个使用数据流图(data flow graphs)的数值计算库,可以在 GPU 或 CPU 上运行。

在过去一年里,我们目睹了 TensorFlow 在机器学习社区中掀起了一股新风潮(特别是在深度学习领域),它不仅出现在研究领域,而且在应用领域也非常常见。如果你正在做深度学习并想在高级别接口中使用它,你可以尝试以它为后端的 Keras 或新推出的 TensorFlow-Slim。


6.gym+universe

Gym:https://gym.openai/

Universe:https://universe.openai/


如果你是人工智能圈内的人,肯定听说过非营利人工智能研究公司 OpenAI。他们的研究人员在今年开源了一些 Python 代码。Gym 是一个用于开发并比较强化学习算法的工具包。它包含一个开源库,这个库收集了一些可被用于测试强化学习算法的测试问题(环境)。它还包含一个站点与 API,能让你对比训练出的算法(代理,agent)的表现。因为它不在乎代理的实现方式,你可以选择使用自己的计算库建立代理:numpy、TensorFlow、Theano 等。

他们最近也发布了 Universe,这是一个用于研究通用人工智能在跨游戏、网页和其他应用上的表现的软件平台。Universe 能完美匹配 gym,因此它能让任何真实世界应用调整进 gym 环境中。研究人员希望这一无限的可能性能够加速对智能代理的研究,从而解决通用任务。


7.Bokeh

链接:http://bokeh.pydata.org/

你可能熟知一些提供数据可视化的 Python 库,其中最流行的就是 matplotlib 和 seaborn。然而,Bokeh 被创造用来做交互可视化(interactive visualization),并且面向现代的网页浏览展示。这意味着 Bokeh 能创造出一个可以让你探索来自网页浏览器数据的情节(plot)。比较棒的是它紧密融合了 Juptyer Notebooks,所以你能使用它配合你的专业工具进行研究。它也有一个可选的服务器组件 bokeh-server,其带有许多强大的功能,比如在服务器端对大型数据集进行下采样、流传输数据、变换等。可点击网址 http://bokeh.pydata.org/en/latest/docs/gallery.html 查看案例,看起来很棒。


8.Blaze

链接:https://blaze.readthedocs.io/en/latest/index.html

有时候,当你对数据集运行分析时,却发现数据集过大,无法一次塞进计算机 RAM 中。如果你无法依赖 numpy 或 Pandas,你通常需要转而使用其他的工具,如 PostgreSQL、MongoDB、Hadoop、Spark 等等。这些工具都有其自身的优缺点,依照任务的特点,总有一种工具是适合你的。但决定转换工具是一项巨大的工程,因为你需要了解这些系统如何工作,以及如何以正确的形式插入数据。

Blaze 提供了一个统一的接口,让用户无需学习所有数据库技术。Blaze 库的核心是一种计算表达方式。Blaze 本身不会进行任何计算:它只是知道如何指定一个特定的后端,决定谁来执行任务。Blaze 还有其它很多功能(它形成了一个生态系统),它作为一个库被开发出来。例如,Dask 实现了一个可用于 NumPy 数组的插件,可以处理大于内存的内容和利用多核处理器,并且还具有动态任务调度能力。


9.Arrow

链接:https://github/crsmithdev/arrow

有一个流行的说法,在计算机科学领域只有两个大问题:无效缓存和命名。我认为这句话忽略了另一个大问题:管理数据时间(managing datetimes)。如果你曾经试图在 Python 中管理数据时间,你就会知道标准库里有巨量的模块和类型:datetime、date、 calendar、 tzinfo、 timedelta、 relativedelta、 pytz 等等。更糟糕的是,时区都自然设定为默认值。

Arrow 为开发者提供了「人类的时间(datetime for humans)」,提供了一种清晰的方法来创建、操作、格式化和转换日期、时间和时间戳。它可以用于替换 Python 2 和 3 的 datetime 类型,并提供了一个更友好的界面,同时加入新的功能(如 humanize)弥补了原系统的不足。即使你不需要 Arrow 提供的额外功能,使用它也可以大大减少代码中的引用。


10. Hug

链接:http://hug.rest/

公开你的内部 API,这样可以大大简化 Python API 的开发过程。Hug 是一个仅限于 Python3 的库,提供在 Python 中创建 HTTP REST API 的最简单的方式。它不是一个 web 框架(虽然 Hug 提供这样的功能,而且表现很好),它的主要功能是公开正确的标准内部 Python API。这个想法非常简单:一次定义逻辑和结构,并且可以通过多种方式公开你的 API。目前,它支持公开 REST API 或命令行界面。

你可以使用类型注释(type annotations),让 Hug 不仅为你的 API 生成文件,同时提供验证和明确的错误消息,这可以让你的开发工作(和你的 API 用户的工作)变得轻松很多。Hug 构建在 Falcon 的高性能 HTTP 库之上,这意味着你可以使用任何 wsgi 兼容的服务器(例如 gunicorn)将其部署到生产环境中。


Python资源大全,让你相见恨晚的Python库! 公司视频课程

img

代双

关注

环境管理

管理 Python 版本和环境的工具

p – 非常简单的交互式 python 版本管理工具。pyenv – 简单的 Python 版本管理工具。Vex – 可以在虚拟环境中执行命令。virtualenv – 创建独立 Python 环境的工具。virtualenvwrapper– virtualenv 的一组扩展。

包管理

管理包和依赖的工具。

pip – Python 包和依赖关系管理工具。pip-tools – 保证 Python 包依赖关系更新的一组工具。conda – 跨平台,Python 二进制包管理工具。Curdling – 管理 Python 包的命令行工具。wheel – Python 分发的新标准,意在取代 eggs。

包仓库

本地 PyPI 仓库服务和代理。

warehouse – 下一代 PyPI。Warehouse bandersnatch – PyPA 提供的 PyPI 镜像工具。devpi – PyPI 服务和打包/测试/分发工具。localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。

分发

打包为可执行文件以便分发。

PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。Nuitka – 将脚本、模块、包编译成可执行文件或扩展模块。py2app – 将 Python 脚本变为独立软件包(Mac OS X)。py2exe – 将 Python 脚本变为独立软件包(Windows)。pynsist – 一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。

构建工具

将源码编译成软件。

buildout – 一个构建系统,从多个组件来创建,组装和部署应用。BitBake – 针对嵌入式 Linux 的类似 make 的构建工具。fabricate – 对任何语言自动找到依赖关系的构建工具。PlatformIO – 多平台命令行构建工具。PyBuilder – 纯 Python 实现的持续化构建工具。SCons – 软件构建工具。

交互式解析器

交互式 Python 解析器。

IPython – 功能丰富的工具,非常有效的使用交互式 Python。bpython– 界面丰富的 Python 解析器。ptpython – 高级交互式Python解析器, 构建于python-prompt-toolkit 之上。

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

imghdr – (Python 标准库)检测图片类型。mimetypes – (Python 标准库)将文件名映射为 MIME 类型。path.py – 对 os.path 进行封装的模块。pathlib – (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。python-magic– 文件类型检测的第三方库 libmagic 的 Python 接口。Unipath– 用面向对象的方式操作文件和目录watchdog – 管理文件系统事件的 API 和 shell 工具

日期和时间

操作日期和时间的类库。

arrow– 更好的 Python 日期时间操作类库。Chronyk – Python 3 的类库,用于解析手写格式的时间和日期。dateutil – Python datetime 模块的扩展。delorean– 解决 Python 中有关日期处理的棘手问题的库。moment – 一个用来处理时间和日期的Python库。灵感来自于Moment.js。PyTime – 一个简单易用的Python模块,用于通过字符串来操作日期/时间。pytz – 现代以及历史版本的世界时区定义。将时区数据库引入Python。when.py – 提供用户友好的函数来帮助用户进行常用的日期和时间操作。

文本处理

用于解析和操作文本的库。

通用chardet – 字符编码检测器,兼容 Python2 和 Python3。difflib – (Python 标准库)帮助我们进行差异化比较。ftfy – 让Unicode文本更完整更连贯。fuzzywuzzy – 模糊字符串匹配。Levenshtein – 快速计算编辑距离以及字符串的相似度。pangu.py – 在中日韩语字符和数字字母之间添加空格。pyfiglet -figlet 的 Python实现。shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。unidecode – Unicode 文本的 ASCII 转换形式 。uniout – 打印可读的字符,而不是转义的字符串。xpinyin – 一个用于把汉字转换为拼音的库。Slug化awesome-slugify – 一个 Python slug 化库,可以保持 Unicode。python-slugify – Python slug 化库,可以把 unicode 转化为 ASCII。unicode-slugify – 一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。解析器phonenumbers – 解析,格式化,储存,验证电话号码。PLY – lex 和 yacc 解析工具的 Python 实现。Pygments – 通用语法高亮工具。pyparsing – 生成通用解析器的框架。python-nameparser – 把一个人名分解为几个独立的部分。python-user-agents – 浏览器 user agent 解析器。sqlparse – 一个无验证的 SQL 解析器。

特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

通用tablib – 一个用来处理中表格数据的模块。OfficeMarmir – 把输入的Python 数据结构转换为电子表单。openpyxl – 一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。python-docx – 读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。unoconv – 在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。XlsxWriter – 一个用于创建 Excel .xlsx 文件的 Python 模块。xlwings – 一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。xlwt / xlrd – 读写 Excel 文件的数据和格式信息。relatorio – 模板化OpenDocument 文件。PDFPDFMiner – 一个用于从PDF文档中抽取信息的工具。PyPDF2 – 一个可以分割,合并和转换 PDF 页面的库。ReportLab – 快速创建富文本 PDF 文档。MarkdownMistune – 快速并且功能齐全的纯 Python 实现的 Markdown 解析器。Python-Markdown – John Gruber’s Markdown 的 Python 版实现。YAMLPyYAML – Python 版本的 YAML 解析器。CSVcsvkit – 用于转换和操作 CSV 的工具。Archiveunp – 一个用来方便解包归档文件的命令行工具。

自然语言处理

用来处理人类语言的库。

NLTK – 一个先进的平台,用以构建处理人类语言数据的 Python 程序。jieba – 中文分词工具。langid.py – 独立的语言识别系统。Pattern – Python 网络信息挖掘模块。SnowNLP – 一个用来处理中文文本的库。TextBlob – 为进行普通自然语言处理任务提供一致的 API。TextGrocery – 一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。

文档

用以生成项目文档的库。

Sphinx – Python 文档生成器。awesome-sphinxdocMkDocs – 对 Markdown 友好的文档生成器。pdoc – 一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。Pycco – 文学编程(literate-programming)风格的文档生成器。

配置

用来保存和解析配置的库。

config – logging 模块作者写的分级配置模块。ConfigObj – INI 文件解析器,带验证功能。ConfigParser – (Python 标准库) INI 文件解析器。profig – 通过多种格式进行配置,具有数值转换功能。python-decouple – 将设置和代码完全隔离。

命令行工具

用于创建命令行程序的库。

命令行程序开发cement – Python 的命令行程序框架。click – 一个通过组合的方式来创建精美命令行界面的包。cliff – 一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。clint – Python 命令行程序工具。colorama – 跨平台彩色终端文本。docopt – Python 风格的命令行参数解析器。Gooey – 一条命令,将命令行程序变成一个 GUI 程序。python-prompt-toolkit – 一个用于构建强大的交互式命令行程序的库。生产力工具aws-cli – Amazon Web Services 的通用命令行界面。bashplotlib – 在终端中进行基本绘图。caniusepython3 – 判断是哪个项目妨碍你你移植到 Python 3。cookiecutter – 从 cookiecutters(项目模板)创建项目的一个命令行工具。doitlive – 一个用来在终端中进行现场演示的工具。howdoi – 通过命令行获取即时的编程问题解答。httpie – 一个命令行HTTP 客户端,cURL 的替代品,易用性更好。PathPicker – 从bash输出中选出文件。percol – 向UNIX shell 传统管道概念中加入交互式选择功能。SAWS – 一个加强版的 AWS 命令行。thefuck – 修正你之前的命令行指令。mycli – 一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。pgcli – Postgres 命令行工具,具有自动补全和语法高亮功能。

下载器

用来进行下载的库.

s3cmd – 一个用来管理Amazon S3 和 CloudFront 的命令行工具。s4cmd – 超级 S3 命令行工具,性能更加强劲。you-get – 一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。youtube-dl – 一个小巧的命令行程序,用来下载 YouTube 视频。

图像处理

用来操作图像的库.

pillow – Pillow 是一个更加易用版的 PIL。hmap – 图像直方图映射。imgSeek – 一个使用视觉相似性搜索一组图片集合的项目。nude.py – 裸体检测。pyBarcode – 不借助 PIL 库在 Python 程序中生成条形码。pygram – 类似 Instagram 的图像滤镜。python-qrcode – 一个纯 Python 实现的二维码生成器。Quads – 基于四叉树的计算机艺术。scikit-image – 一个用于(科学)图像处理的 Python 库。thumbor – 一个小型图像服务,具有剪裁,尺寸重设和翻转功能。wand – MagickWand的Python 绑定。MagickWand 是 ImageMagick的 C API 。

OCR

光学字符识别库。

pyocr – Tesseract 和 Cuneiform 的一个封装(wrapper)。pytesseract – Google Tesseract OCR 的另一个封装(wrapper)。python-tesseract – Google Tesseract OCR 的一个包装类。

音频

用来操作音频的库

audiolazy -Python 的数字信号处理包。audioread – 交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。beets – 一个音乐库管理工具及 MusicBrainz 标签添加工具dejavu – 音频指纹提取和识别django-elastic-transcoder – Django + Amazon Elastic Transcoder。eyeD3 – 一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。id3reader – 一个用来读取 MP3 元数据的 Python 模块。m3u8 – 一个用来解析 m3u8 文件的模块。mutagen – 一个用来处理音频元数据的 Python 模块。pydub – 通过简单、简洁的高层接口来操作音频文件。pyechonest – Echo Nest API 的 Python 客户端talkbox – 一个用来处理演讲/信号的 Python 库TimeSide – 开源 web 音频处理框架。tinytag – 一个用来读取MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。mingus – 一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。

Video

用来操作视频和GIF的库。

moviepy – 一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。scikit-video – SciPy 视频处理常用程序。

地理位置

地理编码地址以及用来处理经纬度的库。

GeoDjango – 世界级地理图形 web 框架。GeoIP – MaxMind GeoIP Legacy 数据库的 Python API。geojson – GeoJSON 的 Python 绑定及工具。geopy – Python 地址编码工具箱。pygeoip – 纯 Python GeoIP API。django-countries – 一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。

HTTP

使用HTTP的库。

requests – 人性化的HTTP请求库。grequests – requests 库 + gevent ,用于异步 HTTP 请求.httplib2 – 全面的 HTTP 客户端库。treq – 类似 requests 的Python API 构建于 Twisted HTTP 客户端之上。urllib3 – 一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。

数据库

Python实现的数据库。

pickleDB – 一个简单,轻量级键值储存数据库。PipelineDB – 流式 SQL 数据库。TinyDB – 一个微型的,面向文档型数据库。ZODB – 一个 Python 原生对象数据库。一个键值和对象图数据库。

数据库驱动

用来连接和操作数据库的库。

MySQL – awesome-mysql系列mysql-python – Python 的 MySQL 数据库连接器。mysqlclient – mysql-python 分支,支持 Python 3。oursql – 一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs.PyMySQL – 纯 Python MySQL 驱动,兼容 mysql-python。PostgreSQLpsycopg2 – Python 中最流行的 PostgreSQL 适配器。queries – psycopg2 库的封装,用来和 PostgreSQL 进行交互。txpostgres – 基于 Twisted 的异步 PostgreSQL 驱动。其他关系型数据库apsw – 另一个 Python SQLite封装。dataset – 在数据库中存储Python字典 – 可以协同SQLite,MySQL,和 PostgreSQL工作。pymssql– 一个简单的Microsoft SQL Server数据库接口。NoSQL 数据库cassandra-python-driver – Cassandra 的 Python 驱动。HappyBase – 一个为 Apache HBase 设计的,对开发者友好的库。Plyvel – 一个快速且功能丰富的 LevelDB 的 Python 接口。py2neo – Neo4j restful 接口的Python 封装客户端。pycassa – Cassandra 的 Python Thrift 驱动。PyMongo – MongoDB 的官方 Python 客户端。redis-py – Redis 的 Python 客户端。telephus – 基于 Twisted 的 Cassandra 客户端。txRedis – 基于 Twisted 的 Redis 客户端。

ORM

实现对象关系映射或数据映射技术的库。

关系型数据库awesome-sqlalchemy系列Django Models – Django 的一部分。SQLAlchemy – Python SQL 工具以及对象关系映射工具。Peewee – 一个小巧,富有表达力的 ORM。PonyORM – 提供面向生成器的 SQL 接口的 ORM。python-sql – 编写 Python 风格的 SQL 查询。NoSQL 数据库django-mongodb-engine – Django MongoDB 后端。PynamoDB – Amazon DynamoDB 的一个 Python 风格接口。flywheel – Amazon DynamoDB 的对象映射工具。MongoEngine – 一个Python 对象文档映射工具,用于 MongoDB。hot-redis – 为 Redis 提供 Python 丰富的数据类型。redisco – 一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。其他butterdb – Google Drive 电子表格的 Python ORM。

Web 框架

全栈 web 框架。

Django – Python 界最流行的 web 框架。awesome-django系列Flask – 一个 Python 微型框架。awesome-flask系列Pyramid – 一个小巧,快速,接地气的开源Python web 框架。awesome-pyramid系列Bottle – 一个快速小巧,轻量级的 WSGI 微型 web 框架。CherryPy – 一个极简的 Python web 框架,...

Python大神,requests库的作者放大招了 流量视频课程

img

紫安

关注

只要是学爬虫的同学,相信无人不知的,无人不晓requests库!requests这个库号称为人类而写的http库("Python HTTP Requests for Humans"),非常好用,功能强大!

它的作者就是大名鼎鼎的Kenneth Reitz,这位大神非常牛逼,功力深厚还爱好摄影,对美学有自己的追求,能把这种美学的意境运用到代码上,非常厉害!

今天去逛他的github,发现他出了一本Python-guide书,赶紧去围观学习了一下受益匪浅!本书是号称Python best practices guidebook, written for Humans,目前有一万三千多的点赞量!

这本书内容非常丰富,从win/linux/os的开发环境的安装,到开发工具推荐和设置,到如何写成优雅的代码,再到Python应用场景的指南比如(网络应用,web开发,命令行的应用,GUI的应用),数据库,系统管理,持续集成和数据库等等,下面我摘录了某一章节里面的部分片段:

Writing Great Python Code

这部分指南关注编写Python代码的最佳实践。

结构化您的工程仓库的结构结构是一把钥匙模块包面向对象编程装饰器上下文管理器动态类型可变和不可变类型提供依赖关系Runners更多阅读代码风格一般概念习语(Idiom)Python之禅PEP 8约定1.模块

Python模块是最主要的抽象层之一,并且很可能是最自然的一个,抽象层允许将代码分为 不同部分,每个部分包含相关的数据与功能:

可以使用import语句的特殊形式from modu import * 模拟更标准的行为。但 import* 通常 被认为是不好的做法,但是使用 from modu import * 的代码较难阅读而且依赖独立性不足。使用 from modu import func 能精确定位您想导入的方法并将其放到全局命名空间中。比 from modu import * 要好些,因为它明确地指明往全局命名空间中导入了什么方法。

2.动态类型

Python是动态类型语言,这意味着变量并没有固定的类型。实际上,Python 中的变量和其他语言有很大的不同,特别是静态类型语言。

变量并不是计算机内存中被写入的某个值,它们只是指向内存的 ‘标签’ 或 ‘名称’ 。

因此可能存在这样的情况,变量 ‘a’ 先代表值1,然后变成字符串 ‘a string’ , 然后又变为指向一个函数:

3.明确的代码

在存在各种黑魔法的Python中,我们提倡最明确和直接的编码方式:

4.每行一个声明

复合语句(比如说列表推导)因其简洁和表达性受到推崇,但在同一行代码中写两条独立的语句是糟糕的:

5.返回值

当一个函数变得复杂,在函数体中使用多返回值的语句并不少见。然而,为了保持函数的明确意图以及一个可持续的可读水平,更建议在函数体中避免使用返回多个有意义的值。

尽管如此,当一个函数在其正常过程中有多个主要出口点时,它会变得难以调试和返回其 结果,所以保持单个出口点可能会更好。

这也将有助于提取某些代码路径,而且多个出口点 很有可能意味着这里需要重构。

上面只是一些书里的很少的部分,大神的内容非常丰富而且全面,非常成体系!值得细细推敲和咀嚼,对提高Python的功劳大有裨益,还等什么,赶紧去围观吧.

尽管 Python 官方之前公布相应消息,会在 2020 年停止对 Python 2 的官方支持,但并未落实到具体日期。

最近 Python 之父 Guido van Rossum 在官方邮件组回复了对 Python 2.7 何时终结(EOL)的咨询。

Guido van Rossum 在回复表示:

Let's not play games with semantics. The way I see the situation for 2.7 is that EOL is January 1st, 2020, and there will be no updates, not even source-only security patches, after that date. Support (from the core devs, the PSF, and python.org) stops completely on that date. If you want support for 2.7 beyond that day you will have to pay a commercial vendor. Of course it's open source so people are also welcome to fork it. But the core devs have toiled long enough, and the 2020 EOL date (an extension from the originally annouced 2015 EOL!) was announced with sufficient lead time and fanfare that I don't feel bad about stopping to support it at all.(大意如下):好了,咱们不玩文字语义游戏了。Python 2.7 的 EOL 日期是 2020 年 1 月 1 日,之后不会有任何更新,源码的安全补丁也不会有了。2020 年元旦之后,来自 Python 核心开发团队、PSF(Python 软件基金会)、Python.org 的支持,统统都停掉。如果以后你想要对 2.7 的支持,你得给商业供应商掏钱了。当然了,因为 Python 是开源的,所以也欢迎大家来 fork。官方核心开发团队已经努力工作够长的时间了,离 2020 年的 EOL 日期还有很长,(之前曾说过在 2015 年就终结),所以停止支持 Python 2,我完全没觉得有啥糟糕的。

2017 年宣布不再支持 Python 2 的软件/库有:

就在2017年 11 月 16 日,Numpy 库官方宣布准备放弃支持 Python 2。

12 月 2 日,Python Web 开发框架 Django 官网发文宣布推送 Django 2.0 版。在 Django 2.0 的发布说明中,最大吸引注意的内容就是兼容性。

Django 1.11.x 是支持 Python 2.7 的最后版本;Django 2.0 支持 Python 3.4、3.5 和 3.6;Django 2.0 对 Python 3.4 将于 2019 年 3 月结束支持,因此 Django 2.0 也将是最后一个支持 Python 3.4 的版本。

Django 2.0 的主要新特性包括:

简化 URL 路由语法

以前是这样写:

url(r'^articles/(?P[0-9]{4})/$',views.year_archive),

现在可以这样:

path('articles//',views.year_archive),

移动友好的 contrib.admin

admin 将自适应主流移动设备。优雅性在老旧浏览器则可能会有打折咯。

新的 Window expressions

新 Window 表达式允许在查询集添加 OVER 从句。可以在表达式中使用 window 函数和 aggregate 函数。

Numpy 是 Python 的一个科学计算的库,提供了矩阵运算的功能,一般与 Scipy、matplotlib 一起使用。

今天 Numpy 的 GitHub 主页上发文称,Numpy 库准备从 2019 年 1 月 1 日起,放弃支持 Python 2。

「Python开发者」摘编如下:

Python 内核团队将于 2020 年停止支持 Python 2。NumPy 项目从 2010 年同时支持 Python 2 和 Python 3,我们发现自己有限资源无力再支持 Python 2 了。因此,我们也计划放弃支持 Python 2。

相应时间表如下:

2018 年 12 月 31 日之前,所有 NumPy 发布版均同时支持Python 2 和 Python 3。从 2019 年 1 月 1 日起,NumPy 的新特性只支持 Python 3。NumPy 的最后一个 Python 2 的版本,将被指定为一个长期支持版(LTS),意味着我们会长期持续合并 Bug 修复和制作 Bug 补丁。LTS 版将会支持到 2019 年 12 月 31 日。

从 2020 年 1 月 1 日起,NumPy 社区对 Python 2 的支持,就彻底说再见了。不过,PyPI 会继续支持 Python 2。如果有商业厂商希望在 2020 年 1 月 1 日后扩大 LTS 的支持,我们愿意让他们使用 NumPy 官方 repo 中的 LTS 分支。

如果我的分享对你有帮助,还请关注菜鸟学Python头条号,与你分享更多有用的知识。

关注私信:学习资料,获取更多学习教程,与更多人一起学习Python!

2017年最流行的15个数据科学Python库 行业视频课程

img

第三

关注

选自Medium

作者:Igor Bobriakov

机器之心编译

参与:朱朝阳、吴攀

Python 近几年在数据科学行业获得了人们的极大青睐,各种资源也层出不穷。数据科学解决方案公司 ActiveWizards 近日根据他们自己的应用开发经验,总结了数据科学家和工程师将在 2017 年最常使用的 Python 库。

核心库

1)NumPy

地址:http://numpy.org

当使用 Python 开始处理科学任务时,不可避免地需要求助 Python 的 SciPy Stack,它是专门为 Python 中的科学计算而设计的软件的集合(不要与 SciPy 混淆,它只是这个 stack 的一部分,以及围绕这个 stack 的社区)。这个 stack 相当庞大,其中有十几个库,所以我们想聚焦在核心包上(特别是最重要的)。

NumPy(代表 Numerical Python)是构建科学计算 stack 的最基础的包。它为 Python 中的 n 维数组和矩阵的操作提供了大量有用的功能。该库还提供了 NumPy 数组类型的数学运算向量化,可以提升性能,从而加快执行速度。

2)SciPy

地址:https://scipy.org

SciPy 是一个工程和科学软件库。除此以外,你还要了解 SciPy Stack 和 SciPy 库之间的区别。SciPy 包含线性代数、优化、集成和统计的模块。SciPy 库的主要功能建立在 NumPy 的基础之上,因此它的数组大量使用了 NumPy。它通过其特定的子模块提供高效的数值例程操作,比如数值积分、优化和许多其他例程。SciPy 的所有子模块中的函数都有详细的文档,这也是一个优势。

3)Pandas

地址:http://pandas.pydata.org

Pandas 是一个 Python 包,旨在通过「标记(labeled)」和「关系(relational)」数据进行工作,简单直观。Pandas 是 data wrangling 的完美工具。它设计用于快速简单的数据操作、聚合和可视化。库中有两个主要的数据结构:

Series:一维

Data Frames:二维

例如,当你要从这两种类型的结构中接收到一个新的「Dataframe」类型的数据时,你将通过传递一个「Series」来将一行添加到「Dataframe」中来接收这样的 Dataframe:

这里只是一小撮你可以用 Pandas 做的事情:

轻松删除并添加「Dataframe」中的列将数据结构转换为「Dataframe」对象处理丢失数据,表示为 NaN(Not a Number)功能强大的分组

可视化

4)Matplotlib

地址:https://matplotlib.org

Matplotlib 是另一个 SciPy Stack 核心软件包和另一个 Python 库,专为轻松生成简单而强大的可视化而量身定制。它是一个顶尖的软件,使得 Python(在 NumPy、SciPy 和 Pandas 的帮助下)成为 MatLab 或 Mathematica 等科学工具的显著竞争对手。然而,这个库比较底层,这意味着你需要编写更多的代码才能达到高级的可视化效果,通常会比使用更高级工具付出更多努力,但总的来说值得一试。花一点力气,你就可以做到任何可视化:

线图散点图条形图和直方图饼状图茎图轮廓图场图频谱图

还有使用 Matplotlib 创建标签、网格、图例和许多其他格式化实体的功能。基本上,一切都是可定制的。

该库支持不同的平台,并可使用不同的 GUI 工具套件来描述所得到的可视化。许多不同的 IDE(如 IPython)都支持 Matplotlib 的功能。

还有一些额外的库可以使可视化变得更加容易。

5)Seaborn

地址:https://seaborn.pydata.org

Seaborn 主要关注统计模型的可视化;这种可视化包括热度图(heat map),可以总结数据但也描绘总体分布。Seaborn 基于 Matplotlib,并高度依赖于它。

6)Bokeh

地址:http://bokeh.pydata.org

Bokeh 也是一个很好的可视化库,其目的是交互式可视化。与之前的库相反,这个库独立于 Matplotlib。正如我们已经提到的那样,Bokeh 的重点是交互性,它通过现代浏览器以数据驱动文档(d3.js)的风格呈现。

7)Plotly

地址:https://plot.ly

最后谈谈 Plotly。它是一个基于 Web 的工具箱,用于构建可视化,将 API 呈现给某些编程语言(其中包括 Python)。在 plot.ly 网站上有一些强大的、开箱即用的图形。为了使用 Plotly,你需要设置你的 API 密钥。图形处理会放在服务器端,并在互联网上发布,但也有一种方法可以避免这么做。

机器学习

8)SciKit-Learn

地址:http://scikit-learn.org

Scikits 是 SciPy Stack 的附加软件包,专为特定功能(如图像处理和辅助机器学习)而设计。在后者方面,其中最突出的一个是 scikit-learn。该软件包构建于 SciPy 之上,并大量使用其数学操作。

scikit-learn 有一个简洁和一致的接口,可利用常见的机器学习算法,让我们可以简单地在生产中应用机器学习。该库结合了质量很好的代码和良好的文档,易于使用且有着非常高的性能,是使用 Python 进行机器学习的实际上的行业标准。

深度学习:Keras / TensorFlow / Theano

在深度学习方面,Python 中最突出和最方便的库之一是 Keras,它可以在 TensorFlow 或者 Theano 之上运行。让我们来看一下它们的一些细节。

9)Theano

地址:https://github/Theano

首先,让我们谈谈 Theano。Theano 是一个 Python 包,它定义了与 NumPy 类似的多维数组,以及数学运算和表达式。该库是经过编译的,使其在所有架构上能够高效运行。这个库最初由蒙特利尔大学机器学习组开发,主要是为了满足机器学习的需求。

要注意的是,Theano 与 NumPy 在底层的操作上紧密集成。该库还优化了 GPU 和 CPU 的使用,使数据密集型计算的性能更快。

效率和稳定性调整允许更精确的结果,即使是非常小的值也可以,例如,即使 x 很小,log(1+x) 也能得到很好的结果。

10)TensorFlow

地址:https://tensorflow.org

TensorFlow 来自 Google 的开发人员,它是用于数据流图计算的开源库,专门为机器学习设计。它是为满足 Google 对训练神经网络的高要求而设计的,是基于神经网络的机器学习系统 DistBelief 的继任者。然而,TensorFlow 并不是谷歌的科学专用的——它也足以支持许多真实世界的应用。

TensorFlow 的关键特征是其多层节点系统,可以在大型数据集上快速训练人工神经网络。这为 Google 的语音识别和图像识别提供了支持。

11)Keras

地址:https://keras.io

最后,我们来看看 Keras。它是一个使用高层接口构建神经网络的开源库,它是用 Python 编写的。它简单易懂,具有高级可扩展性。它使用 Theano 或 TensorFlow 作为后端,但 Microsoft 现在已将 CNTK(Microsoft 的认知工具包)集成为新的后端。

其简约的设计旨在通过建立紧凑型系统进行快速和容易的实验。

Keras 极其容易上手,而且可以进行快速的原型设计。它完全使用 Python 编写的,所以本质上很高层。它是高度模块化和可扩展的。尽管它简单易用且面向高层,但 Keras 也非常深度和强大,足以用于严肃的建模。

Keras 的一般思想是基于神经网络的层,然后围绕层构建一切。数据以张量的形式进行准备,第一层负责输入张量,最后一层用于输出。模型构建于两者之间。

自然语言处理

12)NLTK

地址:http://nltk.org

这套库的名称是 Natural Language Toolkit(自然语言工具包),顾名思义,它可用于符号和统计自然语言处理的常见任务。NLTK 旨在促进 NLP 及相关领域(语言学、认知科学和人工智能等)的教学和研究,目前正被重点关注。

NLTK 允许许多操作,例如文本标记、分类和 tokenizing、命名实体识别、建立语语料库树(揭示句子间和句子内的依存性)、词干提取、语义推理。所有的构建块都可以为不同的任务构建复杂的研究系统,例如情绪分析、自动摘要。

13)Gensim

地址:http://radimrehurek/gensim

这是一个用于 Python 的开源库,实现了用于向量空间建模和主题建模的工具。这个库为大文本进行了有效的设计,而不仅仅可以处理内存中内容。其通过广泛使用 NumPy 数据结构和 SciPy 操作而实现了效率。它既高效又易于使用。

Gensim 的目标是可以应用原始的和非结构化的数字文本。Gensim 实现了诸如分层 Dirichlet 进程(HDP)、潜在语义分析(LSA)和潜在 Dirichlet 分配(LDA)等算法,还有 tf-idf、随机投影、word2vec 和 document2vec,以便于检查一组文档(通常称为语料库)中文本的重复模式。所有这些算法是无监督的——不需要任何参数,唯一的输入是语料库。

数据挖掘与统计

14)Scrapy

地址:https://scrapy.org

Scrapy 是用于从网络检索结构化数据(如联系人信息或 URL)的爬虫程序(也称为 spider bots)的库。它是开源的,用 Python 编写。它最初是为 scraping 设计的,正如其名字所示的那样,但它现在已经发展成了一个完整的框架,可以从 API 收集数据,也可以用作通用的爬虫。

该库在接口设计上遵循著名的 Don』t Repeat Yourself 原则——提醒用户编写通用的可复用的代码,因此可以用来开发和扩展大型爬虫。

Scrapy 的架构围绕 Spider 类构建,该类包含了一套爬虫所遵循的指令。

15)Statsmodels

地址:http://statsmodels.org

statsmodels 是一个用于 Python 的库,正如你可能从名称中猜出的那样,其让用户能够通过使用各种统计模型估计方法以及执行统计断言和分析来进行数据探索。

许多有用的特征是描述性的,并可通过使用线性回归模型、广义线性模型、离散选择模型、稳健的线性模型、时序分析模型、各种估计器进行统计。

该库还提供了广泛的绘图函数,专门用于统计分析和调整使用大数据统计数据的良好性能。

结论

这个列表中的库被很多数据科学家和工程师认为是最顶级的,了解和熟悉它们是很有价值的。这里有这些库在 GitHub 上活动的详细统计:

当然,这并不是一份完全详尽的列表,还有其它很多值得关注的库、工具包和框架。比如说用于特定任务的 SciKit 包,其中包括用于图像的 SciKit-Image。如果你也有好想法,不妨与我们分享。

Python常用库大全 互联网视频课程

img

空气

关注

环境管理

管理 Python 版本和环境的工具

p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – 可以在虚拟环境中执行命令。 virtualenv – 创建独立 Python 环境的工具。 virtualenvwrapper- virtualenv 的一组扩展。 包管理

管理包和依赖的工具。

pip – Python 包和依赖关系管理工具。 pip-tools – 保证 Python 包依赖关系更新的一组工具。 conda – 跨平台,Python 二进制包管理工具。 Curdling – 管理 Python 包的命令行工具。 wheel – Python 分发的新标准,意在取代 eggs。 包仓库

本地 PyPI 仓库服务和代理。

warehouse – 下一代 PyPI。 Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。 devpi – PyPI 服务和打包/测试/分发工具。 localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。 分发

打包为可执行文件以便分发。

PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。 dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。 Nuitka – 将脚本、模块、包编译成可执行文件或扩展模块。 py2app – 将 Python 脚本变为独立软件包(Mac OS X)。 py2exe – 将 Python 脚本变为独立软件包(Windows)。 pynsist – 一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。 构建工具

将源码编译成软件。

buildout – 一个构建系统,从多个组件来创建,组装和部署应用。 BitBake – 针对嵌入式 Linux 的类似 make 的构建工具。 fabricate – 对任何语言自动找到依赖关系的构建工具。 PlatformIO – 多平台命令行构建工具。 PyBuilder – 纯 Python 实现的持续化构建工具。 SCons – 软件构建工具。 交互式解析器

交互式 Python 解析器。

IPython – 功能丰富的工具,非常有效的使用交互式 Python。 bpython- 界面丰富的 Python 解析器。 ptpython – 高级交互式Python解析器, 构建于python-prompt-toolkit 之上。 文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

imghdr – (Python 标准库)检测图片类型。 mimetypes – (Python 标准库)将文件名映射为 MIME 类型。 path.py – 对 os.path 进行封装的模块。 pathlib – (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。 python-magic- 文件类型检测的第三方库 libmagic 的 Python 接口。 Unipath- 用面向对象的方式操作文件和目录 watchdog – 管理文件系统事件的 API 和 shell 工具 日期和时间

操作日期和时间的类库。

arrow- 更好的 Python 日期时间操作类库。 Chronyk – Python 3 的类库,用于解析手写格式的时间和日期。 dateutil – Python datetime 模块的扩展。 delorean- 解决 Python 中有关日期处理的棘手问题的库。 moment – 一个用来处理时间和日期的Python库。灵感来自于Moment.js。 PyTime – 一个简单易用的Python模块,用于通过字符串来操作日期/时间。 pytz – 现代以及历史版本的世界时区定义。将时区数据库引入Python。 when.py – 提供用户友好的函数来帮助用户进行常用的日期和时间操作。 文本处理

用于解析和操作文本的库。

通用 chardet – 字符编码检测器,兼容 Python2 和 Python3。 difflib – (Python 标准库)帮助我们进行差异化比较。 ftfy – 让Unicode文本更完整更连贯。 fuzzywuzzy – 模糊字符串匹配。 Levenshtein – 快速计算编辑距离以及字符串的相似度。 pangu.py – 在中日韩语字符和数字字母之间添加空格。 pyfiglet -figlet 的 Python实现。 shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。 unidecode – Unicode 文本的 ASCII 转换形式 。 uniout – 打印可读的字符,而不是转义的字符串。 xpinyin – 一个用于把汉字转换为拼音的库。 Slug化 awesome-slugify – 一个 Python slug 化库,可以保持 Unicode。 python-slugify – Python slug 化库,可以把 unicode 转化为 ASCII。 unicode-slugify – 一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。 解析器 phonenumbers – 解析,格式化,储存,验证电话号码。 PLY – lex 和 yacc 解析工具的 Python 实现。 Pygments – 通用语法高亮工具。 pyparsing – 生成通用解析器的框架。 python-nameparser – 把一个人名分解为几个独立的部分。 python-user-agents – 浏览器 user agent 解析器。 sqlparse – 一个无验证的 SQL 解析器。 特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

通用 tablib – 一个用来处理中表格数据的模块。 Office Marmir – 把输入的Python 数据结构转换为电子表单。 openpyxl – 一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。 python-docx – 读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。 unoconv – 在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。 XlsxWriter – 一个用于创建 Excel .xlsx 文件的 Python 模块。 xlwings – 一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。 xlwt / xlrd – 读写 Excel 文件的数据和格式信息。 relatorio – 模板化OpenDocument 文件。 PDF PDFMiner – 一个用于从PDF文档中抽取信息的工具。 PyPDF2 – 一个可以分割,合并和转换 PDF 页面的库。 ReportLab – 快速创建富文本 PDF 文档。 Markdown Mistune – 快速并且功能齐全的纯 Python 实现的 Markdown 解析器。 Python-Markdown – John Gruber’s Markdown 的 Python 版实现。 YAML PyYAML – Python 版本的 YAML 解析器。 CSV csvkit – 用于转换和操作 CSV 的工具。 Archive unp – 一个用来方便解包归档文件的命令行工具。 自然语言处理

用来处理人类语言的库。

NLTK – 一个先进的平台,用以构建处理人类语言数据的 Python 程序。 jieba – 中文分词工具。 langid.py – 独立的语言识别系统。 Pattern – Python 网络信息挖掘模块。 SnowNLP – 一个用来处理中文文本的库。 TextBlob – 为进行普通自然语言处理任务提供一致的 API。 TextGrocery – 一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。 文档

用以生成项目文档的库。

Sphinx – Python 文档生成器。 awesome-sphinxdoc MkDocs – 对 Markdown 友好的文档生成器。 pdoc – 一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。 Pycco – 文学编程(literate-programming)风格的文档生成器。 配置

用来保存和解析配置的库。

config – logging 模块作者写的分级配置模块。 ConfigObj – INI 文件解析器,带验证功能。 ConfigParser – (Python 标准库) INI 文件解析器。 profig – 通过多种格式进行配置,具有数值转换功能。 python-decouple – 将设置和代码完全隔离。 命令行工具

用于创建命令行程序的库。

命令行程序开发 cement – Python 的命令行程序框架。 click – 一个通过组合的方式来创建精美命令行界面的包。 cliff – 一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。 clint – Python 命令行程序工具。 colorama – 跨平台彩色终端文本。 docopt – Python 风格的命令行参数解析器。 Gooey – 一条命令,将命令行程序变成一个 GUI 程序。 python-prompt-toolkit – 一个用于构建强大的交互式命令行程序的库。 生产力工具 aws-cli – Amazon Web Services 的通用命令行界面。 bashplotlib – 在终端中进行基本绘图。 caniusepython3 – 判断是哪个项目妨碍你你移植到 Python 3。 cookiecutter – 从 cookiecutters(项目模板)创建项目的一个命令行工具。 doitlive – 一个用来在终端中进行现场演示的工具。 howdoi – 通过命令行获取即时的编程问题解答。 httpie – 一个命令行HTTP 客户端,cURL 的替代品,易用性更好。 PathPicker – 从bash输出中选出文件。 percol – 向UNIX shell 传统管道概念中加入交互式选择功能。 SAWS – 一个加强版的 AWS 命令行。 thefuck – 修正你之前的命令行指令。 mycli – 一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。 pgcli – Postgres 命令行工具,具有自动补全和语法高亮功能。 下载器

用来进行下载的库.

s3cmd – 一个用来管理Amazon S3 和 CloudFront 的命令行工具。 s4cmd – 超级 S3 命令行工具,性能更加强劲。 you-get – 一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。 youtube-dl – 一个小巧的命令行程序,用来下载 YouTube 视频。 图像处理

用来操作图像的库.

pillow – Pillow 是一个更加易用版的 PIL。 hmap – 图像直方图映射。 imgSeek – 一个使用视觉相似性搜索一组图片集合的项目。 nude.py – 裸体检测。 pyBarcode – 不借助 PIL 库在 Python 程序中生成条形码。 pygram – 类似 Instagram 的图像滤镜。 python-qrcode – 一个纯 Python 实现的二维码生成器。 Quads – 基于四叉树的计算机艺术。 scikit-image – 一个用于(科学)图像处理的 Python 库。 thumbor – 一个小型图像服务,具有剪裁,尺寸重设和翻转功能。 wand – MagickWand的Python 绑定。MagickWand 是 ImageMagick的 C API 。 OCR

光学字符识别库。

pyocr – Tesseract 和 Cuneiform 的一个封装(wrapper)。 pytesseract – Google Tesseract OCR 的另一个封装(wrapper)。 python-tesseract – Google Tesseract OCR 的一个包装类。 音频

用来操作音频的库

audiolazy -Python 的数字信号处理包。 audioread – 交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。 beets – 一个音乐库管理工具及 MusicBrainz 标签添加工具 dejavu – 音频指纹提取和识别 django-elastic-transcoder – Django + Amazon Elastic Transcoder。 eyeD3 – 一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。 id3reader – 一个用来读取 MP3 元数据的 Python 模块。 m3u8 – 一个用来解析 m3u8 文件的模块。 mutagen – 一个用来处理音频元数据的 Python 模块。 pydub – 通过简单、简洁的高层接口来操作音频文件。 pyechonest – Echo Nest API 的 Python 客户端 talkbox – 一个用来处理演讲/信号的 Python 库 TimeSide – 开源 web 音频处理框架。 tinytag – 一个用来读取MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。 mingus – 一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。 视频

用来操作视频和GIF的库。

moviepy – 一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。 scikit-video – SciPy 视频处理常用程序。 地理位置

地理编码地址以及用来处理经纬度的库。

GeoDjango – 世界级地理图形 web 框架。 GeoIP – MaxMind GeoIP Legacy 数据库的 Python API。 geojson – GeoJSON 的 Python 绑定及工具。 geopy – Python 地址编码工具箱。 pygeoip – 纯 Python GeoIP API。 django-countries – 一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。 HTTP

使用HTTP的库。

requests – 人性化的HTTP请求库。 grequests – requests 库 + gevent ,用于异步 HTTP 请求. httplib2 – 全面的 HTTP 客户端库。 treq – 类似 requests 的Python API 构建于 Twisted HTTP 客户端之上。 urllib3 – 一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。 数据库

Python实现的数据库。

pickleDB – 一个简单,轻量级键值储存数据库。 PipelineDB – 流式 SQL 数据库。 TinyDB – 一个微型的,面向文档型数据库。 ZODB – 一个 Python 原生对象数据库。一个键值和对象图数据库。 数据库驱动

用来连接和操作数据库的库。

MySQL – awesome-mysql系列 mysql-python – Python 的 MySQL 数据库连接器。 mysqlclient – mysql-python 分支,支持 Python 3。 oursql – 一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs. PyMySQL – 纯 Python MySQL 驱动,兼容 mysql-python。 PostgreSQL psycopg2 – Python 中最流行的 PostgreSQL 适配器。 queries – psycopg2 库的封装,用来和 PostgreSQL 进行交互。 txpostgres – 基于 Twisted 的异步 PostgreSQL 驱动。 其他关系型数据库 apsw – 另一个 Python SQLite封装。 dataset – 在数据库中存储Python字典 – 可以协同SQLite,MySQL,和 PostgreSQL工作。 pymssql- 一个简单的Microsoft SQL Server数据库接口。 NoSQL 数据库 cassandra-python-driver – Cassandra 的 Python 驱动。 HappyBase – 一个为 Apache HBase 设计的,对开发者友好的库。 Plyvel – 一个快速且功能丰富的 LevelDB 的 Python 接口。 py2neo – Neo4j restful 接口的Python 封装客户端。 pycassa – Cassandra 的 Python Thrift 驱动。 PyMongo – MongoDB 的官方 Python 客户端。 redis-py – Redis 的 Python 客户端。 telephus – 基于 Twisted 的 Cassandra 客户端。 txRedis – 基于 Twisted 的 Redis 客户端。 ORM

实现对象关系映射或数据映射技术的库。

关系型数据库 Django Models – Django 的一部分。 SQLAlchemy – Python SQL 工具以及对象关系映射工具。 awesome-sqlalchemy系列 Peewee – 一个小巧,富有表达力的 ORM。 PonyORM – 提供面向生成器的 SQL 接口的 ORM。 python-sql – 编写 Python 风格的 SQL 查询。 NoSQL 数据库 django-mongodb-engine – Django MongoDB 后端。 PynamoDB – Amazon DynamoDB 的一个 Python 风格接口。 flywheel – Amazon DynamoDB 的对象映射工具。 MongoEngine – 一个Python 对象文档映射工具,用于 MongoDB。 hot-redis – 为 Redis 提供 Python 丰富的数据类型。 redisco – 一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。 其他 butterdb – Google Drive 电子表格的 Python ORM。 Web 框架

全栈 web 框架。

Django – Python 界最流行的 web 框架。 awesome-django系列 Flask – 一个 Python 微型框...

2017年最流行的十大Python库 互联网视频课程

img

阿德罗森

关注

年末是你需要思考过去一年的成就的时候。对于程序员来说,这通常是回顾今年发布的或者最近流行的开源库,因为它们是解决特定问题的绝佳工具。

在过去的两个多年中,我们都会在博客中选取我们认为在Python社区最有用的库。今年也是如此。

这一次,这份列表基本都是机器学习(ML)的库。请非ML库的作者而且能够谅解,这都怪我们的偏见。希望在读到本文的人能评论并提出一些被我们忽略的伟大的库帮助我们矫正它。

那么,让我们开始盘点吧!

1. Pipenv

链接:https://github/pypa/pipenv

我们为今年年初发布的这个工具排到榜首,它有能力影响每个Python开发者的工作流程,它已经成为Python管理依赖项的官方推荐工具。

https://packaging.python.org/tutorials/managing-dependencies/#installing-pipenv

Pipenv最初是由Kenneth Reitz创立的一个周末项目,旨在将其他包管理者(如npm或yarn)的创意带入Python中。不再去安装virtualenv,virtualenvwrapper,管理requirements.txt文件,并确保对依赖项的依赖版本的再现性(https://kennethreitz.org/essays/a-better-pip-workflow)。使用Pipenv,你可以在Pipfile中指定所有的依赖关系(通常使用命令添加,删除或更新依赖关系)。该工具可以生成一个Pipfile.lock文件,使你的构建deterministic,帮助你避免那些因为你不知道是否需要的模糊依赖产生的难以捕捉的bug。

当然,Pipenv还有很多其他的特性,并且它的文档非常好,所以一定要看一下,并且在你所有的Python项目中使用它,就像我们在Tryolabs中做的那样。

2. PyTorch

链接:http://pytorch.org/

说到今年流行,尤其是在深度学习(DL)社区流行的库,那就要提到今年Facebook推出的DL框架PyTorch。

PyTorch构建并改进了流行的Torch框架,与Lua不同它是基于Python的。由于最近几年人们大多转向使用Python进行数据科学研究,它是让DL更容易接近的重要一步。

最值得注意的是,PyTorch已经成为众多研究人员的首选框架之一,因为它实现了动态计算图(Dynamic Computational Graph)范式。当使用TensorFlow,CNTK或MXNet等其他框架编写代码时,必须首先定义计算图。该图指定了我们的代码运行的所有操作,这些操作稍后会被编译并可能被框架优化,以便能够在GPU上并行运行得更快。这个范式被称为静态计算图,因为你可以利用各种优化,而且这个图形一旦建成,就有可能运行在不同的设备上(因为执行与构建分离)。然而,在自然语言处理等许多任务中,工作的量通常是可变的:在将图像提供给算法之前,可以将图像调整为固定的分辨率,但不能对可变长度的句子进行相同的处理。这是PyTorch和动态图的亮点,通过在代码中使用标准的Python控制指令,图在执行时被定义,给了你很多这对于一些任务来说必不可少的自由。

当然,PyTorch也为你计算梯度(就像你期望从任何现代的DL框架中获得的那样),速度非常快,而且是可扩展的,所以为什么不试试呢?

3. caffe2

链接:https://caffe2.ai/

这可能听起来很疯狂,但Facebook今年也发布了另一个很棒的DL框架。

原来的Caffe框架已被大众使用多年,以无与伦比的性能和久经考验的代码库而闻名。然而,最近DL的趋势使这个框架在某些方面停滞不前。Caffe2是将Caffe带入“现代世界”的尝试。

它支持分布式训练,部署(即使在移动平台上),最新的CPU并且支持CUDA的硬件。虽然PyTorch可能更适合研究,但Caffe2适合在Facebook上看到的大规模部署。

另外,请看看近期的ONNX。你可以在PyTorch中构建和训练模型,同时使用Caffe2进行部署!

4. Pendulum

链接:https://github/sdispater/pendulum

去年,Arrow被列入榜单,它旨在通过使用Python的datetime让你生活轻松一些。而今年,我们轮到Pendulum了。

Pendulum的优点之一是它是Python标准datetime类嵌入式的替代品,因此可以轻松地将其与现有代码集成,并且只有在实际需要时才使用它的功能。者已经特别注意确保正确地处理时区,默认每个实例的timezone-aware和UTC。你也将得到一个扩展timedelta,使datetime算法更简单。

与其他现有的库不同,它努力使API具有可预测的行为,所以你知道会发生什么。如果你正在做任何与datetimes有关的重要工作,这会让你更快乐!(查看更多:https://pendulum.eustace.io/docs/)。

5. Dash

https://plot.ly/products/dash/

如果你正在做数据科学,你会使用Python生态系统中的优秀工具,比如Pandas和scikit-learn。并在工作流程使用Jupyter Notebooks,这对你和你的同事来说非常棒。但是,你如何与那些不知道如何使用这些工具的人分享这项工作呢?你如何建立一个界面,使人们可以轻松地使用数据,可视化过程?过去,你需要一个前端团队,用Javascript知识来构建这些GUI。但现在不用了。

今年宣布的Dash是一个用于构建Web应用程序的Python开源库,尤其是那些充分利用数据可视化的Web应用程序。它建立在Flask,Plotly.js和React的基础上,并提供了抽象,使你不必学习这些框架,更高效的研发。这些应用程序可以在浏览器中呈现并响应,因此在移动设备中也能使用。

了解更多关于Dash:https://plot.ly/dash/gallery

6.PyFlux

Python中有许多库用来做数据科学和ML,但是当你的数据点是随着时间的推移而变化的度量(例如股票价格,从仪表中获得的度量等等)时,这样的库就很少了。

PyFlux是一个专门为时间序列而开发的 Python开源库。时间序列研究是统计学和计量经济学的一个分支,目标可以描述时间序列的表现(依据隐藏组件或特征),也能预测时间序列未来的表现。

PyFlux允许用于时间序列建模的概率方法,并且已经实现了几个像GARCH这样的现代时间序列模型。

7.Fire

https://github/google/python-fire

通常情况下,你需要为自己的项目制作命令行界面(CLI)。除了传统的argparse,Python中还有click或docopt可用。谷歌今年宣布的Fire,在解决同样的问题上提出了不同的方法。

Fire是一个开源的库,可以为任何Python项目自动生成一个CLI。没错,是自动的:你几乎不需要编写任何代码或文档来构建你的CLI!想完成你的CLI,只需要调用一个Fire方法并把它传递给一个CLI:一个函数,一个对象,一个类,一个字典,甚至你可以不传递任何参数(这会将你的整个代码转换为一个CLI)。这个库可以为你节省很多时间。

8.imbalanced-learn

https://github/scikit-learn-contrib/imbalanced-learn

在一个完美世界的里,我们会有完美平衡的数据集,我们将它们都拿来将训练模型,多么美好。可惜现实世界不是这样的,某些任务更倾向于不平衡的数据。例如,在预测信用卡交易中的欺诈行为时,你会预测绝大多数交易(+ 99.9%)实际上是合法的。如果我们简单的训练ML算法会出现令人沮丧的性能,所以在处理这些类型的数据集时需要特别小心。

幸运的是,这是一个已经被研究过的问题,存在各种各样解决的技术。Imbalanced-learn是一个Python包,它提供了关于这些技术的实现。它与scikit-learn兼容,是scikit-learn-contrib项目的一部分。

9. FlashText

https://github/vi3k6i5/flashtext

如果您需要搜索某些文本并将其替换为其他内容(如大多数数据清理工作),则通常将其转为正则表达式。他们能很好地完成这项工作,但是有时会发生这样的情况:需要搜索的数以千计的内容,正则表达式可能会非常缓慢。

为此,FlashText是一个更好的选择。它使整个操作的运行时间大大提高了。FlashText的优点在于无论搜索条件有多少,运行时都是一样的,而正则表达式中运行时几乎是随着条件数呈线性增长。

FlashText证明了算法和数据结构设计的重要性,即使对于简单的问题,更好的算法也可以很容易地胜过最快的cpu运行简单的实现。

10. Luminoth

https://luminoth.ai/

现在,图像无处不在,理解它的内容对于许多应用程序来说至关重要。值得庆幸的是,由于DL的进步,图像处理技术已经进步了很多。

Luminoth是一个使用TensorFlow和Sonnet构建的用于计算机视觉的开源Python工具包。目前,它可以支持以Faster R-CNN模型的形式进行对象检测。

但是Luminoth不仅是一个特定模型的实现。它是被构建为模块化和可扩展,所以可以直接定制现有的部分或者将其扩展为新的模型来处理不同的问题,尽可能多地复用代码。它提供的工具可以轻松完成构建DL模型所需的工程工作:将数据(在本例中为图像)转换合适的格式输送到数据管道(TensorFlow的tfrecords)中,执行数据增强,在一个或多个gpu上运行训练(使用大型数据集时必须进行分布式培训),运行评估度量,轻松地在TensorBoard中可视化 并用简单的API或浏览器界面部署训练号的模型,以便人们使用。

此外,Luminoth直接与Google Cloud的ML Engine集成,所以即使你没有强大的GPU,也可以使用命令在云端进行训练。

本文为编译文章,转载请注明出处。

来源:atyun_com

来源网址:http://atyun/13563_2017最流行的十大python库.html

Python资源大全,让你相见恨晚的Python库! 营销视频课程

img

华惜灵

关注

环境管理

管理 Python 版本和环境的工具

p – 非常简单的交互式 python 版本管理工具。pyenv – 简单的 Python 版本管理工具。Vex – 可以在虚拟环境中执行命令。virtualenv – 创建独立 Python 环境的工具。virtualenvwrapper– virtualenv 的一组扩展。

包管理

管理包和依赖的工具。

pip – Python 包和依赖关系管理工具。pip-tools – 保证 Python 包依赖关系更新的一组工具。conda – 跨平台,Python 二进制包管理工具。Curdling – 管理 Python 包的命令行工具。wheel – Python 分发的新标准,意在取代 eggs。

包仓库

本地 PyPI 仓库服务和代理。

warehouse – 下一代 PyPI。Warehouse bandersnatch – PyPA 提供的 PyPI 镜像工具。devpi – PyPI 服务和打包/测试/分发工具。localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。

分发

打包为可执行文件以便分发。

PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。Nuitka – 将脚本、模块、包编译成可执行文件或扩展模块。py2app – 将 Python 脚本变为独立软件包(Mac OS X)。py2exe – 将 Python 脚本变为独立软件包(Windows)。pynsist – 一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。

构建工具

将源码编译成软件。

buildout – 一个构建系统,从多个组件来创建,组装和部署应用。BitBake – 针对嵌入式 Linux 的类似 make 的构建工具。fabricate – 对任何语言自动找到依赖关系的构建工具。PlatformIO – 多平台命令行构建工具。PyBuilder – 纯 Python 实现的持续化构建工具。SCons – 软件构建工具。

交互式解析器

交互式 Python 解析器。

IPython – 功能丰富的工具,非常有效的使用交互式 Python。bpython– 界面丰富的 Python 解析器。ptpython – 高级交互式Python解析器, 构建于python-prompt-toolkit 之上。

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

imghdr – (Python 标准库)检测图片类型。mimetypes – (Python 标准库)将文件名映射为 MIME 类型。path.py – 对 os.path 进行封装的模块。pathlib – (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。python-magic– 文件类型检测的第三方库 libmagic 的 Python 接口。Unipath– 用面向对象的方式操作文件和目录watchdog – 管理文件系统事件的 API 和 shell 工具

日期和时间

操作日期和时间的类库。

arrow– 更好的 Python 日期时间操作类库。Chronyk – Python 3 的类库,用于解析手写格式的时间和日期。dateutil – Python datetime 模块的扩展。delorean– 解决 Python 中有关日期处理的棘手问题的库。moment – 一个用来处理时间和日期的Python库。灵感来自于Moment.js。PyTime – 一个简单易用的Python模块,用于通过字符串来操作日期/时间。pytz – 现代以及历史版本的世界时区定义。将时区数据库引入Python。when.py – 提供用户友好的函数来帮助用户进行常用的日期和时间操作。

文本处理

用于解析和操作文本的库。

通用chardet – 字符编码检测器,兼容 Python2 和 Python3。difflib – (Python 标准库)帮助我们进行差异化比较。ftfy – 让Unicode文本更完整更连贯。fuzzywuzzy – 模糊字符串匹配。Levenshtein – 快速计算编辑距离以及字符串的相似度。pangu.py – 在中日韩语字符和数字字母之间添加空格。pyfiglet -figlet 的 Python实现。shortuuid – 一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。unidecode – Unicode 文本的 ASCII 转换形式 。uniout – 打印可读的字符,而不是转义的字符串。xpinyin – 一个用于把汉字转换为拼音的库。Slug化awesome-slugify – 一个 Python slug 化库,可以保持 Unicode。python-slugify – Python slug 化库,可以把 unicode 转化为 ASCII。unicode-slugify – 一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。解析器phonenumbers – 解析,格式化,储存,验证电话号码。PLY – lex 和 yacc 解析工具的 Python 实现。Pygments – 通用语法高亮工具。pyparsing – 生成通用解析器的框架。python-nameparser – 把一个人名分解为几个独立的部分。python-user-agents – 浏览器 user agent 解析器。sqlparse – 一个无验证的 SQL 解析器。

特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

通用tablib – 一个用来处理中表格数据的模块。OfficeMarmir – 把输入的Python 数据结构转换为电子表单。openpyxl – 一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。python-docx – 读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。unoconv – 在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。XlsxWriter – 一个用于创建 Excel .xlsx 文件的 Python 模块。xlwings – 一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。xlwt / xlrd – 读写 Excel 文件的数据和格式信息。relatorio – 模板化OpenDocument 文件。PDFPDFMiner – 一个用于从PDF文档中抽取信息的工具。PyPDF2 – 一个可以分割,合并和转换 PDF 页面的库。ReportLab – 快速创建富文本 PDF 文档。MarkdownMistune – 快速并且功能齐全的纯 Python 实现的 Markdown 解析器。Python-Markdown – John Gruber’s Markdown 的 Python 版实现。YAMLPyYAML – Python 版本的 YAML 解析器。CSVcsvkit – 用于转换和操作 CSV 的工具。Archiveunp – 一个用来方便解包归档文件的命令行工具。

自然语言处理

用来处理人类语言的库。

NLTK – 一个先进的平台,用以构建处理人类语言数据的 Python 程序。jieba – 中文分词工具。langid.py – 独立的语言识别系统。Pattern – Python 网络信息挖掘模块。SnowNLP – 一个用来处理中文文本的库。TextBlob – 为进行普通自然语言处理任务提供一致的 API。TextGrocery – 一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。

文档

用以生成项目文档的库。

Sphinx – Python 文档生成器。awesome-sphinxdocMkDocs – 对 Markdown 友好的文档生成器。pdoc – 一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。Pycco – 文学编程(literate-programming)风格的文档生成器。

配置

用来保存和解析配置的库。

config – logging 模块作者写的分级配置模块。ConfigObj – INI 文件解析器,带验证功能。ConfigParser – (Python 标准库) INI 文件解析器。profig – 通过多种格式进行配置,具有数值转换功能。python-decouple – 将设置和代码完全隔离。

命令行工具

用于创建命令行程序的库。

命令行程序开发cement – Python 的命令行程序框架。click – 一个通过组合的方式来创建精美命令行界面的包。cliff – 一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。clint – Python 命令行程序工具。colorama – 跨平台彩色终端文本。docopt – Python 风格的命令行参数解析器。Gooey – 一条命令,将命令行程序变成一个 GUI 程序。python-prompt-toolkit – 一个用于构建强大的交互式命令行程序的库。生产力工具aws-cli – Amazon Web Services 的通用命令行界面。bashplotlib – 在终端中进行基本绘图。caniusepython3 – 判断是哪个项目妨碍你你移植到 Python 3。cookiecutter – 从 cookiecutters(项目模板)创建项目的一个命令行工具。doitlive – 一个用来在终端中进行现场演示的工具。howdoi – 通过命令行获取即时的编程问题解答。httpie – 一个命令行HTTP 客户端,cURL 的替代品,易用性更好。PathPicker – 从bash输出中选出文件。percol – 向UNIX shell 传统管道概念中加入交互式选择功能。SAWS – 一个加强版的 AWS 命令行。thefuck – 修正你之前的命令行指令。mycli – 一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。pgcli – Postgres 命令行工具,具有自动补全和语法高亮功能。

下载器

用来进行下载的库.

s3cmd – 一个用来管理Amazon S3 和 CloudFront 的命令行工具。s4cmd – 超级 S3 命令行工具,性能更加强劲。you-get – 一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。youtube-dl – 一个小巧的命令行程序,用来下载 YouTube 视频。

图像处理

用来操作图像的库.

pillow – Pillow 是一个更加易用版的 PIL。hmap – 图像直方图映射。imgSeek – 一个使用视觉相似性搜索一组图片集合的项目。nude.py – 裸体检测。pyBarcode – 不借助 PIL 库在 Python 程序中生成条形码。pygram – 类似 Instagram 的图像滤镜。python-qrcode – 一个纯 Python 实现的二维码生成器。Quads – 基于四叉树的计算机艺术。scikit-image – 一个用于(科学)图像处理的 Python 库。thumbor – 一个小型图像服务,具有剪裁,尺寸重设和翻转功能。wand – MagickWand的Python 绑定。MagickWand 是 ImageMagick的 C API 。

OCR

光学字符识别库。

pyocr – Tesseract 和 Cuneiform 的一个封装(wrapper)。pytesseract – Google Tesseract OCR 的另一个封装(wrapper)。python-tesseract – Google Tesseract OCR 的一个包装类。

音频

用来操作音频的库

audiolazy -Python 的数字信号处理包。audioread – 交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。beets – 一个音乐库管理工具及 MusicBrainz 标签添加工具dejavu – 音频指纹提取和识别django-elastic-transcoder – Django + Amazon Elastic Transcoder。eyeD3 – 一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。id3reader – 一个用来读取 MP3 元数据的 Python 模块。m3u8 – 一个用来解析 m3u8 文件的模块。mutagen – 一个用来处理音频元数据的 Python 模块。pydub – 通过简单、简洁的高层接口来操作音频文件。pyechonest – Echo Nest API 的 Python 客户端talkbox – 一个用来处理演讲/信号的 Python 库TimeSide – 开源 web 音频处理框架。tinytag – 一个用来读取MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。mingus – 一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。

Video

用来操作视频和GIF的库。

moviepy – 一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。scikit-video – SciPy 视频处理常用程序。

地理位置

地理编码地址以及用来处理经纬度的库。

GeoDjango – 世界级地理图形 web 框架。GeoIP – MaxMind GeoIP Legacy 数据库的 Python API。geojson – GeoJSON 的 Python 绑定及工具。geopy – Python 地址编码工具箱。pygeoip – 纯 Python GeoIP API。django-countries – 一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。

HTTP

使用HTTP的库。

requests – 人性化的HTTP请求库。grequests – requests 库 + gevent ,用于异步 HTTP 请求.httplib2 – 全面的 HTTP 客户端库。treq – 类似 requests 的Python API 构建于 Twisted HTTP 客户端之上。urllib3 – 一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。

数据库

Python实现的数据库。

pickleDB – 一个简单,轻量级键值储存数据库。PipelineDB – 流式 SQL 数据库。TinyDB – 一个微型的,面向文档型数据库。ZODB – 一个 Python 原生对象数据库。一个键值和对象图数据库。

数据库驱动

用来连接和操作数据库的库。

MySQL – awesome-mysql系列mysql-python – Python 的 MySQL 数据库连接器。mysqlclient – mysql-python 分支,支持 Python 3。oursql – 一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs.PyMySQL – 纯 Python MySQL 驱动,兼容 mysql-python。PostgreSQLpsycopg2 – Python 中最流行的 PostgreSQL 适配器。queries – psycopg2 库的封装,用来和 PostgreSQL 进行交互。txpostgres – 基于 Twisted 的异步 PostgreSQL 驱动。其他关系型数据库apsw – 另一个 Python SQLite封装。dataset – 在数据库中存储Python字典 – 可以协同SQLite,MySQL,和 PostgreSQL工作。pymssql– 一个简单的Microsoft SQL Server数据库接口。NoSQL 数据库cassandra-python-driver – Cassandra 的 Python 驱动。HappyBase – 一个为 Apache HBase 设计的,对开发者友好的库。Plyvel – 一个快速且功能丰富的 LevelDB 的 Python 接口。py2neo – Neo4j restful 接口的Python 封装客户端。pycassa – Cassandra 的 Python Thrift 驱动。PyMongo – MongoDB 的官方 Python 客户端。redis-py – Redis 的 Python 客户端。telephus – 基于 Twisted 的 Cassandra 客户端。txRedis – 基于 Twisted 的 Redis 客户端。

ORM

实现对象关系映射或数据映射技术的库。

关系型数据库awesome-sqlalchemy系列Django Models – Django 的一部分。SQLAlchemy – Python SQL 工具以及对象关系映射工具。Peewee – 一个小巧,富有表达力的 ORM。PonyORM – 提供面向生成器的 SQL 接口的 ORM。python-sql – 编写 Python 风格的 SQL 查询。NoSQL 数据库django-mongodb-engine – Django MongoDB 后端。PynamoDB – Amazon DynamoDB 的一个 Python 风格接口。flywheel – Amazon DynamoDB 的对象映射工具。MongoEngine – 一个Python 对象文档映射工具,用于 MongoDB。hot-redis – 为 Redis 提供 Python 丰富的数据类型。redisco – 一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。其他butterdb – Google Drive 电子表格的 Python ORM。

Web 框架

全栈 web 框架。

Django – Python 界最流行的 web 框架。awesome-django系列Flask – 一个 Python 微型框架。awesome-flask系列Pyramid – 一个小巧,快速,接地气的开源Python web 框架。awesome-pyramid系列Bottle – 一个快速小巧,轻量级的 WSGI 微型 web 框架。CherryPy – 一个极简的 Python web 框架,...

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP