点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

安得广厦千万间,大庇天下寒士俱欢颜。-- 杜甫

呆鸟云:“本文已由 Tryolabs 书面授权翻译,大家可以安心阅读,再也不用担心版权问题啦。对于想转载的朋友,呆鸟也特意申请了转载授权,转载时附上 Tryolabs 的 LOGO 与原文链接即可,当然,呆鸟的信息也要保留一下下。另外,这篇文章介绍的东西真是不错,呆鸟尤其喜欢 Pyodide,越翻译越想私藏,但既然已经答应了 Tryolabs 的外国友人,只好心中默念三遍‘独乐乐不如众乐乐,我是分享的小行家’。”

原文作者:Fabián Torres

原文链接:
https://tryolabs.com/blog/2019/12/10/top-10-python-libraries-of-2019/

以下为译文。


欢迎回来,这是我们第五次推出年度顶级 Python 支持库榜单。在这里,我们列出了隐匿于开源世界里的瑰宝,既可以帮你启动新的项目,也可以为你现有的项目添光加彩。本榜单覆盖了各个领域,包括机器学习与非机器学习的支持库。

希望你能和我们一样喜欢本年度的顶级支持库榜单,话不多说,题归正文!

1. HTTPX

项目网址:
https://www.encode.io/httpx/

经常进行 API 交互的 Python 忠粉,对 requests 应该是运用自如了。不过,对于日趋普及的现代高性能应用而言,在用到异步范式时,requests 就显得有点捉襟见肘了。

为了解决这一问题,大咖 Tom Christie 和他的小伙伴给大家带来了新世代异步 HTTP 客户端 ~ HTTPX。

紧跟 requests 步伐,HTTPX 在支持 requests 标准功能的同时,还支持 HTTP/2 与 HTTP/1,以及通过 ASGI 协议直接调用 Python 网络应用,此外还有完善的类型注释。

要执行大规模并发请求?HTTPX 就是你要找的答案。

注意:HTTPX 仍在 alpha 版开发阶段,目前只开发了异步客户端,将来还会引入同步客户端。

2. Starlette

项目网址:
https://www.starlette.io/

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

Starlette 的灵活性很强,既可以用作完整的网络框架,也可以只用作 ASGI 工具箱。

Starlette 运行在 uvicorn 之上,这个支持库入选了去年的 10 大顶级 Python 支持库榜单。

如果想开发新型网络应用,强烈建议您给 Starlette 一个发光发热的机会。

3. FastAPI

项目网址:
https://github.com/tiangolo/fastapi

Starlette 很赞,但它太迷你了,虽然给了开发者很大的自由,但有时,用户要的其实只是一个能快速完成任务的框架。

Sebastián Ramírez 就是出于这个目的开发的 FastAPI,怎么说呢?这个支持库的各个方面都很 Fast。

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

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

FastAPI 基于 Starlette 开发,性能与 NodeJS 和 GO 相当,还自带 WebSocket 与 GraphQL 原生支持。

最后,对于开源支持库而言,它的技术支持文档也非常不错。说真的,去看一下吧!

4. Immutables

项目网址:
https://github.com/magicstack/immutables

MagicStack 的兄弟回归了,这次他们带来的是一个简单、优雅的不可变映射类型(“冻结字典”)。

这东西的好处在哪儿?呃,希望你能听得懂下面这句话,Haskell 等函数编程语言里使用的哈希数组映射字典树(HAMT)的底层数据结构。最值得注意的是,不管 set() 还是 get() 操作的性能都为  O(log N),且对于相对较小的映射,可以达到 O(1)。

如果你的应用里字典的规模较大,并且想提高一下性能,这个酷酷的新支持库值得一试。

5. Pyodide

项目网址:
https://github.com/iodide-project/pyodide/

Pyodide 是本榜单里最刷三观的项目。通过 WebAssembly,它把 Python 科学引入到了浏览器界面,把科学计算提升到了全新的层面。

想用 Numpy 搞定一些数字?用 Pandas 处理大型 DataFrame?用 Matplotlib 为计算结果进行可视化?有了 Pyodide,这些操作在浏览器里就可以轻轻松松地实现了。

这还不算完,还有好消息:这个库可用的 Python 支持库已经超过了 35 个,您这是要上天啊。

6. Modin

项目网址:
https://github.com/modin-project/modin

Modin 的口号是“只改一行代码,就能加速 Pandas”,没错,就是这么简单。只要安装 Modin,更改 import 语句,在多核笔记本上,处理数据的速度就能提高 4 倍。

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

有的时候,获得更快的速度就是那么简单,改一两行代码就可以了,Modin 就是证明。

7. Streamlit

项目网址:
https://github.com/streamlit/streamlit

不论机器学习项目多么的超凡脱俗,都免不了要手动与模型和数据交互的工作。

与其投入无数小时,开发数千行代码的应用,Streamlit 让你可以快速搭建用来分享模型与分析的 APP。构建交互式 UI、实现数据可视化、输出分析模型现在就是小菜一碟。

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

8. Transformers

项目网址:
https://github.com/huggingface/transformers

从事机器学习相关工作的读者,一定会对过去的一年中自然语言处理(NLP)领域里的重大突破有所耳闻。

BERT、XLNet、roBERTa 等新涌现出来的高性能模型已经取得了长足的发展,尤其是在文本分类、机器翻译、命名实体识别等众多 NLP 领域里的高精尖突破层出不穷,让人眼花缭乱。

对业界人士来说,找到一款既能在产品级程序上利用这些模型,又不会太过复杂的工具,尤为重要。对研究者而言,一个既不用花费太多时间编写模板代码,又能调校支持库内核,不断开发、实验新模型的支持库,也非常重要。

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

锦上添花:Hugging Face 团队开发了 DistilBERT,这是基于 BERT 提炼出来的,更小、更快、更省钱、更轻量的版本。

还在犹豫要不要用 Hugging Face 的变形金刚处理现代 NLP 任务?看到这篇文章就是缘分,快来试下这个在线演示,感受变形金刚的魔力吧。

9. Detectron2

项目网址:
https://github.com/facebookresearch/detectron2

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

就在短短的几年前,上述这些技术就像是科幻小说。我们从未对 FAIR 有过什么期望,但这回他们再一次震撼全场。

Detectron2 是 Detectron 的延续,该支持库建立在 PyTorch 之上,整合了多种高精尖的计算机视觉算法。

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

Detectron2 能否形成生机勃勃的社区,还需要些时间来验证,但到目前为止,它的前途还是蛮光明的。很多研究人员都在为 Detectron2 研发更新、更快、更好的模型,因此,它成为计算机视觉应用“首选”解决方案的可能性很大。如果你从事计算机视觉工作,一定要对这个支持库保持密切的关注!

10. Metaflow

项目网址:
https://docs.metaflow.org/introduction/what-is-metaflow

Metaflow 这个支持库实在太新了,差点就没赶上 2019 年榜单评选!但不要因此就小瞧它:别看它 12 月 3 日才正式发布,其实它是 Netfilx 两年精雕细琢的成果,通过了长期内部实测,Netflix 才决定开源。

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

我们在 Tryolabs 内部已经评测了几个 Metaflow 核心项目。如果你也对这个工具感兴趣,请参阅 Netflix 博客的发布贴。

结论

这一年,或者说又一个10 年马上就要过去了,开源社区这些年的对世界的贡献将对今后几年产生深远的影响。想要了解这些年的优秀开源库,就来看下我们这几年的榜单吧:2015、2016、2017、2018。

本文由 Elías Masquil, Alan Descoins 与 Germán Hoffman 合作编撰。

如需查看完整链接版,请点击原文链接

------------------- End -------------------

往期精彩文章推荐:

  • Python环境搭建—安利Python小白的Python和Pycharm安装详细教程

  • 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

  • 利用Python网络爬虫抓取微信好友的签名及其可视化展示

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~

2019 年 10 大顶级 Python 支持库相关推荐

  1. 2019 必知的 10 大顶级 python 库

    朋友们,我是床长! 如需转载请标明出处:http://blog.csdn.net/jiangjunshow 作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python.在本文中,我们将 ...

  2. 使用深度置信网络进行特征提取代码实现 python_2019必学的10大顶级Python库

    作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python.在本文中,我们将讨论一些 python 中的顶级库,开发人员可以使用这些库在现有的应用程序中应用.清洗和表示数据,并进行机器 ...

  3. 2020必知的 10 大顶级 python 库

    作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python.在本文中,我们将讨论一些 python 中的顶级库,开发人员可以使用这些库在现有的应用程序中应用.清洗和表示数据,并进行机器 ...

  4. 10个顶级Python实用库,推荐你试试!

    为什么我喜欢Python?对于初学者来说,这是一种简单易学的编程语言,另一个原因:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行. 在本文中,我挑选了15个最有用 ...

  5. python语言是一种高级通用编程语言-2019年十大顶级编程语言:会这些的程序员薪资有多高?...

    如今,各类软硬件产品不断被开发出新的功能,其相应的程序代码也成为人们所熟知的众多现代与新兴技术的核心组成部分. 目前世界上能够查询到的编程语言有近600多种,包括通用的开发语言 C. C++.JAVA ...

  6. 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!

    https://risingstars.js.org/2019/en 大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 关于猫哥,大家可以看看我的年终总结 前端工程师的 2020 年 ...

  7. 全球10大顶级开源ERP系统

    企业资源规划(ERP)和客户关系管理(CRM)系统现在已经成为各种组织和企业的必需品,通过它们,可以轻松实现企业的信息数据标准化.系统运行集成化.业务流程合理化.绩效监控动态化.管理改善持续化. 本文 ...

  8. 猛增 174K Star!前端最流行的 10 大顶级开源项目!

    大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 关于猫哥,大家可以看看我的年终总结 前端工程师的 2020 年终总结 - 乾坤未定,你我皆黑马. 今天给大家推荐 2020 年最流行 ...

  9. python十大语言_2015 年十大流行 Python语言 库

    本文主要向大家介绍了2015 年十大流行 Python语言 库,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python编程语言的一大优势,就在于其丰富的第三方库.经过过去一年 ...

最新文章

  1. Java项目:实现权限管理系统(java+SpringBoot+MyBatis+AOP+LayUI+Mysql)
  2. 中南继续教育学院计算机绘图,求答案~~机电一体化,计算机绘图
  3. 串口调试助手-打开报错
  4. ubuntu与mysql5.7设置外网可访问
  5. tof摄像头手势识别_一种基于TOF手势识别的控制系统的制作方法
  6. json函数 presto_Hive sql和Presto sql的一些对比
  7. EnjoyCSS – 在线的,先进的 CSS3 代码生成器
  8. linux检测系统是否被入侵(下)
  9. 数据库实验7 数据库视图的定义与使用
  10. 《流畅的Python第二版》读书笔记
  11. android 显示系统时间,Android 实时获取当前时间并显示
  12. Java基础-多线程
  13. IDM6.32的安装与激活IDM Crack 6.32 Build 8 + Patch 2019 free (100% working)
  14. CR-Fill: Generative Image Inpainting with Auxiliary Contexutal Reconstruction
  15. 二建考生速看 拿到二级建造师证书后该如何进行注册?
  16. 微信小程序多个倒计时
  17. 【Redis】五种数据类型
  18. 一文彻底搞懂Mybatis系列(十六)之MyBatis集成EhCache
  19. java执行sql列名无效_JAVA 里查找SQL数据 列名无效
  20. ios手游退款有风险吗?

热门文章

  1. 西游趣记-我不想养马,我想当老大
  2. powershell修改字体大小
  3. 人生不幸是你的一种主动选择,因为把不幸归为过去或者归为自己做不到的偏见,是对自己的一种“善意”
  4. 带有表情符号的文本情感分类实验
  5. title属性鼠标放在按钮上显示文字
  6. 弘辽科技:如何抢占平台流量?提升人货匹配效率
  7. 备份手机、电脑微信聊天记录并恢复
  8. 实训作业2-光敏电阻,人体感应灯
  9. 【SQL 03 统计每种性别的人数】
  10. C语言中const与指针