前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017最流行的十大Python库

2017最流行的十大Python库

作者头像
企鹅号小编
发布2018-01-12 11:53:17
9070
发布2018-01-12 11:53:17
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

AiTechYun

编辑:yuxiangyu

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

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

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

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

1. Pipenv

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

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

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

Pipenv最初是由Kenneth Reitz创立的一个周末项目,旨在将其他包管理者(如npm或yarn)的创意带入Python中。不再去安装virtualenv,virtualenvwrapper,管理requirements.txt文件,并确保对依赖项的依赖版本的再现性(https://www.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.com/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的基础上,并提供了抽象,使你不必学习这些框架,更高效的研发。这些应用程序可以在浏览器中呈现并响应,因此在移动设备中也能使用。

本文来自企鹅号 - ATYUN订阅号媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - ATYUN订阅号媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档