盘点2019 年 10 大优秀 Python 支持库

2020-3-20

来自:快快网络

1、HTTPX

HTTPX 在支持 requests 标准功能的同时,还支持 HTTP/2 与 HTTP/1,以及通过 ASGI 协议直接调用 Python 网络应用,此外还有完善的类型注释。需要注意的是,HTTPX 仍在 alpha 版开发阶段,目前只开发了异步客户端,将来还会引入同步客户端。

2、Starlette

Starlette 具备 WebSocket、GraphQL、进程内后台任务等多种功能,是真正高性能的轻量级 ASGI 框架与工具箱。所有功能都完全支持类型注释代码库,且不需要任何硬性依赖项。可以把它当成非常轻量级的现代异步版 Flask。

Starlette 的灵活性很强,既可以用作完整的网络框架,也可以只用作 ASGI 工具箱,并且它 运行在 uvicorn 之上,这个支持库入选了去年的 10 大优秀 Python 支持库榜单。

如果想开发新型网络应用,强烈建议使用Starlette。

3、FastAPI

这个用 Python 开发 API 的新框架具有超高性能,而且可以基于 OpenAPI 标准自动生成交互式文档。默认支持 Swagger UI 与 ReDoc,允许直接从浏览器调用、测试 API,从而提高开发效率。用这个框架开发 API,简单高效。

该支持库还支持类型提示,FastAPI 在很多方面都使用了类型提示,其中最酷的一个功能是由 Pydantic 加持的自动数据验证与转换。

FastAPI 基于 Starlette 开发,性能与 NodeJS 和 GO 相当,还自带 WebSocket 与 GraphQL 原生支持。并且它的技术支持文档也非常不错。

4、Immutables

Immutables的Haskell 等函数编程语言里使用的哈希数组映射字典树(HAMT)的底层数据结构。最值得注意的是,不管 set() 还是 get() 操作的性能都为 O(log N),且对于相对较小的映射,可以达到 O(1)。

如果你的应用里字典的规模较大,并且想提高一下性能,那么Immutables值得一试。

5、Pyodide

Pyodide通过 WebAssembly,它把 Python 科学引入到了浏览器界面,把科学计算提升到了全新的层面。它完全能够搞定一些数字,还可以处理大型 DataFrame、为计算结果进行可视化。目前,这个库可用的 Python 支持库已经超过了 35 个。

盘点2019 年 10 大优秀 Python 支持库

 

6、Modin

只要安装 Modin,更改 import 语句,在多核笔记本上,处理数据的速度就能提高 4 倍。

Modin 有自带的 modin.pandas.DataFrame 对象,这是一个轻量级的并行 DataFrame 对象。因为与 Pandas API 兼容,使用这个对象就跟是透明的一样,在后台,该支持库使用 Ray 或 Dask 作为计算引擎,执行分布式数据计算。

7、Streamlit

与其投入无数小时,开发数千行代码的应用,Streamlit 可以快速搭建用来分享模型与分析的 APP。构建交互式 UI、实现数据可视化、输出分析模型都十分容易。

有了 Streamlit,只要添加几行代码,就能从 Python 脚本代码飞升为产品级 APP。TensorFlow、Keras、PyTorch、Pandas,只要是你能想到的数据科学工具,Streamlit 都已经支持了。

8、Transformers

Transformers,这个支持库支持最现代的 NLP 模型打包、预训练等功能,而且还开箱即用。TensorFlow 2.0 与 PyTorch 之间的互操作,让该支持库达到了业界标准,完全可以为研究工作与产品级应用程序加持。该支持库由研究人员开发,因此,它的更新速度非常快,而且还在不断引入新式模型。

9、Detectron2

Facebook AI 研究团队(FAIR)在开发对象探知、姿态估测、语义/实例分隔、全景分割等模型的同时,不断将计算机视觉(CV)推向新的高度。

Detectron2 是 Detectron 的延续,该支持库建立在 PyTorch 之上,整合了多种高精尖的计算机视觉算法。鉴于支持用例类型多种多样,这类支持库的开发难度特别大。与 Hugging Face 的 Transformers 类似,FAIR 团队的 Detectron2 真的很强大,其延展性与模块化的设计风格,让它在计算机视觉研究应用中独领风骚。同时,Detectron2 的应用极其简单,非常适合那些只想快速得到结果,不想了解核心算法的人。没错,只要几行 Python 代码,就可以通过 Detectron2 让你开发的软件“理解”图片。

10、Metaflow

Metaflow12 月 3 日才正式发布,它是 Netfilx 两年精雕细琢的成果,通过了长期内部实测,Netflix才决定开源。

Metaflow 这个 Python 支持库能帮助数据科学家与数据工程师开发在现实世界中应用的实战项目。它的目标是,减轻非技术型数据科学家学习技术的负担,比如,如何利用计算资源、怎么实现并行运算、架构设计、版本控制等。Netflix 与 AWS 合作,让用户通过开箱即用的分布式计算即可轻松定义复杂数据流。