市面上的Python包太多了,很少有人能全部掌握。仅PyPI就列出了47,000个包!这些天听说很多数据科学家转向Python,我不禁想到,虽然他们从pandas、scikit-learn和numpy中获得了一些巨大的好处,但他们错过了一些稍旧的Python库,这些库可以提供帮助一样多。在这篇文章中,我将介绍一些鲜为人知的库。即使你已经是Python高手,也应该看看,可能有一两个是你没见过的!1)deloreanDelorean是一个非常酷的日期/时间库。它是我在Python中使用过的最自然的日期/时间修改库之一。有点像JavaScript中的时刻。文档也不错,除了在技术上有帮助外,也让无数人忍不住回去参考。fromdeloreanimportDeloreanEST="US/Eastern"d=Delorean(timezone=EST)2)prettytable你可能还没有听说过prettytable,因为它列在GoogleCode上——基本上是Exile的编码工具。尽管被放逐到西伯利亚,但prettytable在终端或浏览器中仍然是一个强大而漂亮的构建输出。因此,如果您正在为IPythonNotebook开发一个新插件,请为您的HTML__repr__使用prettytable。fromprettytableimportPrettyTabletable=PrettyTable(["animal","ferocity"])table.add_row(["wolverine",100])table.add_row(["grizzly",87])table.add_row(["Caerbannog的兔子",110])table.add_row(["猫",-1])table.add_row(["鸭嘴兽",23])table.add_row(["海豚",63])table.add_row(["信天翁",44])table.sort_key("ferocity")table.reversort=True+--------------------+----------+|动物|凶猛|+---------------------+---------+|Caerbannog的兔子|110||100||灰熊|87||海豚|63||信天翁|44||鸭嘴兽|23||猫|-1|+------------------+----------+3)snowballstemmer我第一次安装snowballstemmer的原因是因为我认为这个名字很酷。但它实际上是一个非常好的小图书馆。snowballstemmer以15种不同的语言工作,并带有用于启动的porterstemmer。fromsnowballstemmerimportEnglishStemmer,SpanishStemmerEnglishStemmer().stemWord("Gregory")#GregoriSpanishStemmer().stemWord("amarillo")#amarill4)wget还记得您出于某种目的编写的网络爬虫吗?原来是它创造的——wget。递归下载网站?抓取每个页面上的每个图像?避免cookie痕迹?所有只有wget。电影《马克·扎克伯格》甚至首先将柯克兰归功于它,他们将所有内容公开并允许对他们的Apache配置进行索引,因此只需要一点wget魔法就可以下载柯克兰的整个Facebook。太容易了!Python版本几乎包含您需要的一切,并且非常易于使用。importwgetwget.download("http://www.cnn.com/")#100%[.......................................................................]280385/280385请注意,Linux和OSX用户可以使用另一个选项:fromshimportwget。不过,Python的wget模块确实存在一些争议。5)PyMC我不知道为什么PyMC经常被排除在外。scikit-learn似乎是每个人的宠儿(虽然它很棒),但在我看来PyMC并没有得到应有的重视。frompymc.examplesimportdisaster_modelfrompymcimportMCMCM=MCMC(disaster_model)M.sample(iter=10000,burn=1000,thin=10)[----------------100%--------------]10000中的10000在1.4秒内完成PyMC是用于贝叶斯分析的库。它在CamDavidsonPilon的《Bayesian Methods for Hackers》文章中得到了强调,并出现在许多流行的数据科学/python博客中,但它并没有像scikit-learn一样受到尊重。6)shsh允许您将shell命令作为函数导入Python。它对于在bash中做一些您可能忘记了如何在Python中使用的简单事情特别有用(即递归搜索文件)。fromshimportfindfind("/tmp")/tmp/foo/tmp/foo/file1.json/tmp/foo/file2.json/tmp/foo/file3.json/tmp/foo/bar/file3.json7)fuzzywuzzy我用过的最简单的前10个库是fuzzywuzzy(如果有时间,请阅读源代码)。fuzzywuzzy是SeatGeek的一些人构建的模糊字符串匹配库。fuzzywuzzy执行诸如字符串比较比率、标记比率和许多其他匹配指标之类的事情。这对于在不同数据库中创建特征向量或匹配记录特别有用。fromfuzzywuzzyimportfuzzfuzz.ratio("Hitmewithyourbestshot","Hitmewithyourpetshark")#858)progressbar你知道那些你在一堆狗屎中调用__main__的for循环print“stillgoing.....那些超级长时间运行的脚本。太遗憾了,它没有像另一个GoogleCode弃儿一样得到很多关注(文档有2个空格缩进...2啊!)。我希望每个人都能对这个勤劳能干的孩子多一些同情,阿门。从进度条导入ProgressBarimporttimepbar=ProgressBar(maxval=10)foriinrange(1,11):pbar.update(i)time.sleep(1)pbar.finish()#60%|###########################################################|9)colorama既然你的日志有了漂亮的进度条,为什么不让它们变得多彩呢!当事情变得非常糟糕时,您可以提醒自己。colorama超级好用。只需弹出您的脚本并添加您想要更改颜色的任何文本:10)uuid在我看来,我们在编程时实际上只需要几个工具:散列、键/值存储和全局唯一标识符(通用唯一ID,uuid)。uuid内置于Python的UUID库中。它实现了1、3、4、5版本的UUID标准,对于保证唯一性等任务非常方便。这听起来很愚蠢,但是如果您要跟踪营销活动或电子邮件发送情况并确保每个人都有自己的促销代码或ID号呢?如果您担心用完id,哈哈,那您就完全不知所措了!可以生成的UUID数量相当于宇宙中的原子数量。importuuidprintuuid.uuid4()#e7bafa3d-274e-4b0a-b9cc-d898957b4b61uuid11沧海一粟)bashplotlib最后我厚着脸皮介绍一下——bashplotlib是我的作品之一。它允许您使用标准输入绘制直方图和散点图。因此,虽然您可能不希望它取代ggplot或matplotlib作为您的日常绘图库,但它是非常新的。最起码可以作为一种美化日志的方式。$pipinstallbashplotlib$scatter--filedata/texas.txt--pchx希望这些Python库对你的开发有所帮助!翻译链接:http://www.codeceo.com/article/11-python-libs-you-not-know.html英文原文:11个你可能不知道的Python库
