从R迁移到Python:那些你不可不知的库

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

为什么迁移?

关于python中的机器学习,有一点让我爱不释手的就是它可以从R语言社区汲取养分然后再进行仿效。我是一个编程语言库的忠实信徒。所以在这篇文章中,我准备重温一些在使用R语言中非常重要的包,以及这些包在Python中所与之相对的。

 

glm, knn, randomForest, e1071 (是的,这是一个包的名字) -> scikit-learn

关于R语言的一点让人爱恨交加的是机器学习算法被包装成了包。这意味着每个算法都有自己的包,而不是有一个或是一套机器学习库来实现一些普遍性的算法。好处就是你可以找到那些非常深奥的,前沿的算法实现,但如果你想要可供日常切换使用的算法,这又是极其痛苦的。而对于这点,Pyhtonscikit-learn可以完美解决。Scikit-learn提供了一套普遍性的、相同API应用的机器学习算法。一句话搞定Logistic回归和梯度下降机器之间的切换。

 

reshape/reshape2, plyr/dplyr -> pandas

这实际上是我们上一篇文章的一个章节。Pandas汲取了R语言中数据处理的精华并将它带入到了Python中。 它包括了数据框修改和重构的自我实现。基本上,它得到了reshape/reshape2plyr/dplyr的精华并python化。

 

ggplot2 -> ggplot + seaborn + bokeh

如果还有一点是python难以匹敌R的,那就是画图了。不费吹灰之力,R语言可以在任何方面轻松碾压。即便如此,Python绘图还是已经成熟了很多,尽管它的社区已破碎不堪。如果你喜欢ggplot风格的语法,那除了Yhatggplot别无他法。如果你寻觅统计和技术上的画图包就可以使用seaborn。如果你在市场上寻找一些超级美观的、良好视觉互动的画图包,可以试试bokeh

 

stringr -> 空白

在“原生R”进行字符串操作近乎于愚蠢。无论何时,如果我要在R中操作字符串,我只做做2件事(按顺序):

  •  点头致谢新西兰孕育了哈德利·威克汉姆

  •   Import stringr

stringr绝对是个救星。书写流畅,表现不俗(至少我是这么认为的),安装方便(绝对不要忽视这最后一项。如果人们不能安装上软件,那根本没有意义创造它)

好吧,stringr自夸的独白结束。好消息是,Python字符串操作太棒了,你真的不需要一个字符串库!它有一个神奇的内置的正则表达式库 re,和一个内置的字符串元库被恰当地称为字符串。你简直太幸运了,所有与字符串相关的能源都蕴含在Pyhton中!

 

RStudio -> Rodeo

对于许多用户来说,RStudio就等同于R,为什么不呢?对于R中的数据分析,Rstudio是一个非常好的IDE。从历史观点来看,Python确实并没有很多可选项。当然,这已经不再是问题了。大约一年前,我们发布了最初版本的Redeo,而且大约一个月前发布了为WindowsOSXLinux开发的2.0版本。

加州大学伯克利分校的斯蒂芬·许说道“自从开始使用RStudio,我们一直在为Python寻找一个相同的IDE。我们尝试过太多的IDE      像是Sublime TextSpyder等,但无功而返。直到我们发现了Rodeo,简直没有比它更适合的了。”

 

Knitr -> Jupyter

knitr是用R语言来创建可重复的和高度可视化的分析。它长时间以来也是RStudio的重要组成部分。在Python的世界里,最难找到相类似的是Jupyter的包。Jupyter为在Python(或其他语言)中编程提供了一个侧重于再现性和可视化的互动环境,它甚至有一个R的插件!

 

sqldf -> pandasql

sqldf能够帮助SQL用户在R语言中轻松操纵数据。当我刚开始学习R时就使用过它. 那时候,Yhat实际上在Python中建立了一个类似的包:pandasql。概念相同:对数据框进行SQL语句查询,得到返回的数据框!3年过去,pandasqlGitHub上得到了超过256颗星。这对一个只有358行代码的库可是还不错的哟!


英文原文:http://blog.yhat.com/posts/moving-from-r-to-python.html
译者:燕沉枫
 

2月15日11:00到13:00网站停机维护,13:00前恢复
iPy智能助手 双击展开
查看更多聊天记录
(Ctrl+回车)换行