点击上方“Python高校”,关注
文末干货立马到手
欢迎回到我们第5年度版的顶级Python库列表。在这里,你会发现一些开源世界中隐藏的珍宝,它们会让你开始你的新项目,或者让你现有的项目更有趣。你会发现机器学习和非机器学习库,所以我们涵盖了所有内容。
我们希望你能像我们创造它一样喜欢它,所以我们开始吧!
1.HTTPX
作为一个经常与API进行交互的Python死忠粉,你可能比较熟悉requests库。然而,如果你正在使用异步范式,那requests将不会为你带来任何好处,异步范式在高性能现代应用程序中已经越来越常见。
为了解决这个问题,了不起的Tom Christie和他的合作者为我们带来了HTTPX,它是一个未来十年的下一代异步HTTP客户端。
HTTPX跟requests一样好用, 它为你提供了requests的标准特性以及对HTTP/2和HTTP/1的支持。其他特性包括使用ASGI协议直接调用Python web应用程序,以及完全类型注释。
你需要同时进行大量请求吗?那么HTTPX就是新的首选答案。
注意:HTTPX仍然处于alpha版本中,目前只作为异步客户端进行开发。在未来,同步客户端将被重新引入。
2. Starlette
Starlette是一个轻量级的ASGI框架/工具包,具有一系列的特性,包括WebSocket和GraphQL支持,进程内后台任务和真正的高性能。所有这些都带有一个100%类型注释的代码库和零硬依赖项。你可以把它看作是一个非常轻量的、现代的和异步的Flask版本。
它还允许你灵活地选择是将其作为一个完整的web框架使用,还是仅仅作为一个ASGI工具包使用。
它运行在一个ASGI服务器上面,比如uvicorn,这使得uvicorn去年也进入了这个列表。
如果你正在考虑开发一个新的web应用程序,那么你一定要给Starlette一个大放异彩的机会。
3. FastAPI
Starlette很棒,但它非常简约,没有主见。这给了你很大的自由,但有时候,你只是需要一个框架来把事情快速做好。
Sebastian Ramirez创建的FastAPI正是这样的库。它的字里行间都透着快速。
这个用于使用Python特性构建API的新框架具有非常高的性能和基于OpenAPI标准的自动化的交互文档。它默认支持Swagger UI和ReDoc,允许你直接从浏览器调用和测试你的API,从而加快开发时间。使用这个框架构建API既快速又简单。
这个库还利用了现代Python的最佳实践之一:类型提示。FastAPI对很多东西都使用了类型提示,但是其最酷的特性之一是自动数据验证和转换,由Pydantic提供技术支持。
在Starlette的基础上构建,FastAPI的性能与NodeJS和Go相当,而且它还支持原生WebSocket和GraphQL。
最后,但并非最不重要的是,它拥有最好的开源库技术文档。说真的,看看吧!
4. Immutables
MagicStack的伙伴们回来了,为我们带来了一个简单而优雅的不可变映射类型(“frozen dict”)。
谁能从这个库中受益呢?好吧,它的底层数据结构是一个哈希数组映射特里 (HAMT),主要在Haskell等函数式编程语言中使用。最有趣的部分是,他们为set()和get()操作都提供了O(log N)的性能,这对于相对较小的映射来说其实就是O(1)。
如果你的应用程序使用了更大的字典,并且可以提高性能,那这个很酷的新库可能值得你查看一下。
5. Pyodide
Pyodide是这些让你心醉神迷的项目之一。它使用WebAssembly将Python科学堆栈引入到浏览器,将科学计算提升到了一个全新的水平。
你想要用NumPy处理一些数字吗?想要使用Pandas处理一些较大的DataFrame吗?想要使用Matplotlib对你的结果绘制图表吗?多亏了Pyodide,你现在可以在你的浏览器中轻松实现所有这些功能,甚至更多。
更好的是:这个包目录列出了超过35个当前可用的包。真的,只有你想不到的,没有做不到的。
6. Modin
Modin的座右铭是通过改变一行代码来规模化你的Pandas工作流,而且它确实是那样简单。你只需安装Modin,改变你的导入语句,你就能在拥有多核处理器的现代笔记本电脑上获得高达4倍的速度优势。
它是怎么做到的呢?我们会让你知道这个秘密的。Modin实现了自己的modin.pandas.DataFramemode对象,它是一个轻量级的并行DataFrame。这个对象的使用是透明的,因为它与Pandas是API兼容的,并且在后端,它会使用诸如Ray或Dask之类的计算引擎来分发数据和计算。
有时候,你只需要对你的代码做一些小的更改,你就可以获得很大的速度提升,Modin就是这样的一个证明。
7. Streamlit
在每个复杂的机器学习项目中,总会有那么一个时刻,此时,你最终需要手动地与模型和数据进行交互。
与花费数小时和数千行代码来开发一个应用程序不同,Streamlit允许你快速地构建应用程序来共享你的模型和分析。创建一个UI来与其进行交互,并且视觉化你的数据,现在你的模型的输出就变得非常容易了。
Streamlit提供了一种从Python脚本跳到生产级应用程序的快速方法,你只需在代码中添加几行即可。TensorFlow、Keras、PyTorch、Pandas -凡是你能想到的,Streamlit都能与各种数据科学相关的工具一起工作。
8. Transformers
如果你正在从事任何与机器学习相关的工作,那么你可能已经听说了在过去一年中围绕自然语言处理(NLP)出现的重要进展。
许多新的高性能模型,如BERT、XLNet或roBERTa,已经被开发出来,显著地促进了各种NLP任务(如文本分类、机器翻译、命名实体识别等)的艺术状态的发展!
对于实践者来说,拥有能够使用这些模型为生产应用程序提供动力的易于使用的工具是很重要的。对于研究人员来说,重要的是要有能够调整模型内部机制的库,这样他们就可以开发和试验新的模型,而不必浪费太多的时间编写样板代码。
Hugging Face的了不起的人员为我们带来了transformers,一个包含了已打包的、预训练的和直接使用的大多数现代NLP模型的实现。TensorFlow 2.0和PyTorch之间的互操作性帮助该库迅速成为了一个行业标准,从而为研究和生产应用程序提供了支持。这个库也在快速壮大,经常会有一些新模型被引入其中,并且这些模型是由研究人员开发的。
锦上添花: Hugging Face团队还开发了 DistilBERT,它是一种更小、更快、成本更低、更轻量的BERT的浓缩版本。
你还在犹豫要不要使用 Hugging Face / Transformer来切换到现代NLP吗 ?今天是你的幸运日,你可以查看它们的很棒的在线演示并惊叹其能力之强大。
9. Detectron2
Facebook的人工智能研究团队(FAIR)一直在推进着计算机视觉(CV)的极限,他们为对象检测、姿态估计、语义/实例分割,以及最近的全景分割等任务开发了新的模型。
解决很多这些问题的可能性就像几年前的科幻小说一样。我们只能对FAIR满怀期待,这一次他们又一次成功地震撼了全场。
Detectron2是备受期待的Detectron的续集,它是用PyTorch从头开始构建的,并且打包了最先进的计算机视觉算法。
这样的库进行工程设计起来特别困难,因为它们必须支持不同类型的用例。就像Hugging Face的Transformers的例子一样,FAIR团队在设计Detectron2时做得很好,他们采用了一种非常灵活和模块化的方式,这使它非常适用于CV研究应用程序。同时,它的使用极其简单,对于那些只想快速获得结果而不想涉及内部机制的人来说非常理想。是的,你可以使用Detectron2来让你的软件只用几行Python代码就能“理解”图像。
时间将会告诉我们,Detectron2是否能够成功地产生一个充满活力的社区,但是到目前为止,这看起来很有希望。它很可能会成功地成为CV应用程序的“首选”解决方案,因为在它的社区中,新的、更快、更好的模型正在被贡献出来,并且这些模型是由研究人员创建的。如果你正在从事任何类型的CV工作,请密切关注它的社区。
10. Metaflow
这是一个初来乍到的新库,太新以至于它差点进不了这个2019年名单!但是不要被愚弄了:尽管它是在不到两周前发布的,但它已经被Netflix内部测试过了,直到经过两年的改进,他们才决定开放源代码。
Metaflow是一个Python库,用于帮助数据科学家和工程师构建用于真实世界的现实生活项目。它主要的专注点是减轻非技术数据科学家的技术负担,例如计算资源、并行执行、架构设计和版本控制等。Netflix与AWS进行了合作,允许你轻松定义复杂的数据流,同时为分布式计算提供开箱即用的支持。
我们已经在考虑在Tryolabs内部的一些关键项目中使用Metaflow。如果你有兴趣了解更多关于这个工具的信息,请查看Netflix的发布博客。
结论
又一年(十年?!)过去了,同时留下了对开源世界有意义的贡献,这些贡献在未来几年也将是有价值的。你可以在我们之前的版本中查看这些库的演变:2015年、2016年、2017年、2018年。
我们想用几句话来感谢社区里的每一个人,感谢他们的宝贵贡献,也感谢你们读者在我们的博客上做出了这么大的贡献。
哦,顺便说一下,如果我们漏掉了你最喜欢的Python库,请随时在下面评论。我们很想听听你的意见。
这篇博客文章是与Elias Masquil、Alan Descoins和German Hoffman合作完成的。
英文原文:https://tryolabs.com/blog/2019/12/10/top-10-python-libraries-of-2019/
译者:好酒不上头
来和小伙伴们一起向上生长呀!
扫描下方二维码,添加Gao微信,可领 Python和AI 学习大礼包,想发推文、广告、砍价小程序的敬请绕道!一定记得备注「交流学习」。
????长按识别,添加微信
(添加人数较多,会自动通过)
推荐:
开源库
Python 开发者必知的 11 个 Python GUI 库
Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!
我用 Python 爬了天猫内衣店的数据Python爬完数据后,我终于买车不用坐引擎盖哭啦
学习路线
基于TensorFlow 2.0的中文深度学习开源书来了!GitHub趋势日榜第一,斩获2K+星
微软官方上线了Python 教程,7个章节就把Python说通了
最全 14 张思维导图:教你构建 Python 编程的核心知识体系
工具
实践和数据分析
爬虫
我给曾经暗恋的初中女同学,用Python实现了她飞机上刷抖音
被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器
谁偷偷删了你的微信?别慌!Python 揪出来为了给女友挑合适的内衣,我用 Python 爬了天猫内衣店的数据Python爬完数据后,我终于买车不用坐引擎盖哭啦
这里除了干货一无所有
人生苦短,我选在看