你可能不知道的10大 python 库

2016-05-17 译者:听雨 说人话的Python分享 说人话的Python分享

Python最大优点就是有大量的库可供我们调用,下面,我们将为你推荐你可能不知道的10大 python 库。


原文地址:http://dwz.cn/3npiOP (墙外)


如果不是开源社区做了许多伟大的工作,提供了很多可靠的库,我们2015年的项目也不会如此成功。


每个人都写过“十大”名单,所以我们也不能免俗。以下是你应该知道的,我们在2015年使用的十大Python库列表(排名不分先后)。我们尽量避免选择成熟的库,如Django、Flask、Rest、Framework等,并且去除了一些不可能众所周知的库。现在,让我们开始吧!


1、Jupyter

   

如果一个画家不能立刻看到它画的东西结果是什么样的?Jupyter笔记本能让我们很简便的编程、调试和运行,并且它成为数据科学家首选工具之一。这个笔记本结合了现场编程和文档文件。由于这个原因,它是我们快速创造原型和教程的工具。


虽然我们使用Jupyter只为写Python代码,现在它已增加了对其它编程语言的支持,如Julia和Haskell。


(想进一步学习数据可视化吗?扫描文末的二维码参加我们的课程吧!)



2、retrying

   

这个retrying的库能帮助你避免重新发明轮子:它给你实现了一个重试的行为。它提供了一个通用的、简易的、普适的重试的能力。因为也有一堆的属性可以设置,如最大次数、延迟、避免睡眠、错误条件等。小而简单。


3、aiohttp

   

截止到2015年,最重要的库都被移植到了Python3,所以我们要开始拥抱它。我们很喜欢通过协同程序共同写代码,所以我们不得不使用相同并发模式的HTTP客户端如(如request)和服务端。Aiohttp库就是这样的,提供一个简洁和易使用的HTTP客户端/服务端。


4、plumbum

   

我们使用很多方法来调用Python程序的其它脚本或可执行文件,但是plumbum可以将它们全部取代。通过一个易于使用的语法,你可以执行本地或者远程命令,得到一个跨平台的输出或错误代码,如果这还不够,你可以组合一个界面来建立命令行应用。试一试吧!


5、phonenumbers

   

与电话有关的工作和验证电话号码非常痛苦,因为要考虑国际前缀和区号,其中很多问题要考虑到国家。这个phonenumbers 的Python库是简化了的谷歌libphonenumbers的端口。它可以用于解析、格式化和使用非常少的代码验证电话号码。更重要的是,phonenumbers可以确定一个电话号码是否唯一(根据E.164格式)。它可以在Python2和Python3上工作。


我们现在已经在很多项目中广泛应用这个库,主要是通过它对django-phonenumber-field的支持来解决经常弹出的问题。


6、networkx

   

图形和网络通常会用于很多不同的任务,如组织数据、表示它们的流动或者代表实体之间的联系。Networkx允许图形和网络的建立和操作。在networkx中使用的算法使其具有高度的可扩展性,允许在它在处理大图的时候更加理想。此外,还有大量的渲染选项使它成为一个很棒的可视化工具。



7、influxdb

   

如果你正在考虑在时间序列基础上的数据存储,那么你应当使用influxDB。InfluxDB是我们一直使用的时间序列数据库。通过一个RESTful API,它在必须使用大量数据时特别易于使用,并且非常有效。此外,检索和分组数据是其内置的功能。这种官方的客户端抽象了大部分的调用API的工作,所以我们可以使用一个“python化”的方式来创建,而不是写原始的JSON查询。


8、elasticsearch-dsl

   

如果你曾经用过Elasticsearch,你一定会遭遇过过长的JSON格式,让我们浪费时间试图找出解析错误。这个Elasticsearch DSL库在官方Elasticsearch生成解释并释放,所以你只需要使用Pyhon定义的类或查询来写一切,而不必担心JSON。它还提供对Python对象和映射的文档。


9、keras

   

深度学习是新的趋势,在这里,keras让人眼前一亮。它可以在Theano上运行,并允许多种神经网络架构的快速实验。高度模块化和简约的特性,让它可以无缝的在CPU和GPU上运行。类似keras的事物是我们在2015年解决研发项目的关键。



10、gensim

   

如果你在使用NLP(自然语言处理)并且没有听说过Gensim,那你一定生活在石器时代。它提供了一些常用的、可扩展(存储器独立)的算法,如tf-idf、word2vec、 doc2vec、LSA等,以及一个极好的记录界面。