欢迎回来,我们的第五个年度最佳Python支持库列表。在这里,我们列出了隐藏在开源世界中的宝石,它们可以帮助您开始一个新项目或为您现有的项目增光添彩。该列表涵盖各个领域,包括机器学习和非机器学习的支持库。我希望您和我们一样喜欢今年的优秀支持库列表。废话不多说,进入正文!1.HTTPX项目官网:https://www.encode.io/httpx/忠实的Python爱好者,经常和API打交道,请求自由使用。然而,对于越来越流行的现代高性能应用程序,使用异步范式时请求有点捉襟见肘。为了解决这个问题,大咖TomChristie和他的小伙伴们为大家带来了新一代的异步HTTP客户端~HTTPX。跟上请求的步伐,HTTPX不仅支持请求的标准功能,还支持HTTP/2和HTTP/1,通过ASGI协议直接调用Python网络应用,此外还有完整的类型注解。做海量并发请求?HTTPX是您正在寻找的答案。注:HTTPX还处于alpha版本开发阶段,目前只开发了异步客户端,后续会引入同步客户端。2、Starlette项目官网:https://www.starlette.io/Starlette封装了WebSocket、GraphQL、进程内后台任务等多项功能,是一个真正高性能的轻量级ASGI框架和工具箱。带有类型注释的代码库完全支持所有功能,并且不需要任何硬依赖性。将其视为Flask的一个非常轻量级的、现代的、异步的版本。Starlette非常灵活,可以用作完整的Web框架或只是一个ASGI工具箱。Starlette在uvicorn之上运行,uvicorn是去年Python支持库前10名列表中的一个支持库。如果你想开发新的web应用程序,我强烈建议你给Starlette一个大放异彩的机会。3、FastAPI项目网址:https://github.com/tiangolo/fastapiStarlette很棒,就是太小了。虽然它给了开发者很大的自由,但有时候,用户想要的只是一个可以快速完成任务的快速API。框架。SebastiánRamírez为此开发了FastAPI,我应该怎么说呢?这个支持库的每个方面都是快速的。这个用Python开发API的新框架具有超高性能,可以自动生成基于OpenAPI标准的交互式文档。默认支持SwaggerUI和ReDoc,可以直接从浏览器调用和测试API,提高开发效率。使用此框架开发API非常快速和简单。支持库还支持现代Python的一项实用功能:类型提示。FastAPI以多种方式使用类型提示,最酷的功能之一是由Pydantic提供支持的自动数据验证和转换。FastAPI基于Starlette开发,性能媲美NodeJS和GO,同时原生支持WebSocket和GraphQL。最后,作为一个开源的支持库,它的技术支持文档也很不错。说真的,去看看吧!4.ImmutablesProjectURL:https://github.com/magicstack/immutablesMagicStack的兄弟们回来了,这次他们带来了一个简单优雅的immutablemap类型(“freezedictionary”)。这东西有什么好处?嗯,希望你能看懂下面这句话,Haskell等函数式编程语言中使用的哈希数组映射字典树(HAMT)的底层数据结构。最值得注意的是,set()和get()操作的性能都是O(logN),对于相对较小的地图可以达到O(1)。如果您的应用程序中有大型词典并希望提高性能,这个很酷的新支持库值得一试。5.Pyodide项目网站:https://github.com/iodide-project/pyodide/Pyodide是这份榜单上印象最深刻的项目。通过WebAssembly,它将Python的科学带入浏览器界面,将科学计算提升到一个全新的水平。想使用Numpy获取一些数字吗?使用Pandas处理大型DataFrame?使用Matplotlib可视化计算结果?使用Pyodide,这些操作可以很容易地在浏览器中实现。这还不是全部,有个好消息:这个库有超过35个Python支持库可用,你简直就是天堂。6.Modin项目网址:https://github.com/modin-project/modinModin的口号是“SpeedupPandasbychangingonlylineofcode”,没错,就是这么简单。只需安装Modin,更改导入语句,在多核笔记本电脑上,处理数据的速度可以提高4倍。我的天~~这是怎么操作的?Modin有自己的modin.pandas.DataFrame对象,是一个轻量级的并行DataFrame对象。因为它与PandasAPI兼容,所以使用这个对象就像它一样透明。后台支持库使用Ray或Dask作为计算引擎,进行分布式数据计算。有时,获得更快的速度就像更改一两行代码一样简单,而Modin就是证明。7.Streamlit项目网址:https://github.com/streamlit/streamlit无论机器学习项目多么超凡脱俗,都不可避免地需要手动与模型和数据进行交互。Streamlit允许您快速构建用于共享模型和分析的应用程序,而不是投入无数时间和开发数千行代码应用程序。构建交互式UI、可视化数据和导出分析模型现在是小菜一碟。借助Streamlit,只需几行代码,嗖的一声,就可以从Python脚本代码变成生产级APP。TensorFlow、Keras、PyTorch、Pandas,只要你能想到的数据科学工具,Streamlit都已经支持了。8.Transformers项目网址:https://github.com/huggingface/transformers从事机器学习相关工作的读者一定听说过过去一年自然语言处理(NLP)领域的重大突破。BERT、XLNet、roBERTa等新兴的高性能模型取得了长足的进步,尤其是在文本分类、机器翻译、命名实体识别等诸多NLP领域。精密突破的出现令人眼花缭乱。对于业内人士来说,找到一个可以在生产级程序中使用这些模型而又不会过于复杂的工具是非常重要的。对于研究人员来说,一个不需要花太多时间编写模板代码,又能调整支持库核心,不断开发和试验新模型的支持库也很重要。HuggingFace的工作人员为我们带来了Transformers,这是一个支持最现代的NLP模型打包、预训练等开箱即用的支持库。TensorFlow2.0和PyTorch之间的互操作性使支持库成为行业标准,完全有能力支持研究工作和生产级应用。支持库是由研究人员开发的,所以更新非常快,新模型不断推出。锦上添花:HuggingFace团队开发了DistilBERT,它是更小、更快、更便宜、更轻便的BERT版本。还在犹豫是否将HuggingFace的Transformers用于现代NLP任务?看到这篇文章是缘分,快来试试这个在线演示,感受一下变形金刚的神奇吧。9.Detectron2项目官网:https://github.com/facebookresearch/detectron2FacebookAI研究团队(FAIR)正在开发物体检测、姿态估计、语义/实例分割、全景分割等模型,同时不断整合计算机视觉(简历)达到新的高度。就在短短几年前,这些技术还像是科幻小说。本来我们对FAIR抱有太大的期望,但这一次他们又一次震撼了全场。Detectron2是Detectron的延续。这个支持库建立在PyTorch之上,并集成了各种复杂的计算机视觉算法。考虑到各种类型的支持用例,此类支持库尤其难以开发。与HuggingFace的Transformers类似,FAIR团队的Detectron2确实很强大,其可扩展性和模块化的设计风格使其在计算机视觉研究应用中独树一帜。同时,Detectron2的应用极其简单,非常适合那些只想快速得到结果,不想了解核心算法的人。没错,只需几行Python代码,你就可以使用Detectron2让你的软件“看懂”图片。Detectron2能否形成一个充满活力的社区,还需要一段时间来证明,但目前来看,它的前景还是很光明的。许多研究人员正在为Detectron2开发更新、更快和更好的模型,因此它很有可能成为计算机视觉应用程序的“首选”解决方案。如果你从事计算机视觉工作,一定要密切关注这个支持库!10.Metaflow项目官网:https://docs.metaflow.org/introduction/what-is-metaflowMetaflow这个支持库太新了,差点就错过了2019的榜单评选!但不要因此而小看它:别看它是在12月3日正式上映的,其实它是Netflix两年来精心打造的成果。经过长期的内部测试,Netflix决定开源。Metaflow是一个Python支持库,可帮助数据科学家和数据工程师为实际应用程序开发实用项目。它的目标是减轻非技术数据科学家学习技术的负担,例如如何使用计算资源、如何实现并行计算、架构设计、版本控制等。Netflix与AWS合作,让用户可以轻松地使用开箱即用的分布式计算定义复杂的数据流。我们已经审查了Tryolabs中的几个Metaflow核心项目。如果您也对此工具感兴趣,请参阅Netflix博客上的发布帖子。结论随着这一年或另外10年的结束,开源社区多年来为世界做出的贡献将对未来几年产生深远影响。
