从 R 迁移到 Python 过程中你需要知道的几个软件库

为什么要用 Python 呢?

我喜欢用 Python 来处理机器学习问题的一个重要原因是 Python 吸取了 R 社区的优点,同时还将其进行了优化打包。我一直认为编程语言的能力取决于它的软件库,因此本文将着重介绍我经常使用的一些关于机器学习算法的 R 包和 Python 中的替代包。

glm, knn, randomForest, e1071 -> scikit-learn

R 语言的一个缺点是每个机器学习算法都有一个相应的软件包,这大大提升了用户的学习成本。Python 中的scikit-learn 软件包则完美地解决了这个问题,scikit-learn 为许多常用的机器学习算法提供了一套相同的 API 接口。利用这个软件包,我们仅需要一行代码就可以将 LogistiRegression 模型切换成 GradientBoostingMachines 模型。

reshape/reshape2, plyr/dplyr -> pandas

我在之前的一篇文章中介绍了 pandas 库。pandas 吸取了 R 语言中数据清洗功能的优点并将其引入到 Python 中。该库中实现了数据框的功能和其他的一些常用操作方法,它基本包含了 reshape/reshape2plyr/dplyr 中的精华之处。

ggplot2 -> ggplot + seaborn + bokeh

在绘图方面,R 语言一直做得比 Python 好。即便如此,Python 的绘图功能已经趋于成熟了,如果你喜欢 ggplot 风格的代码,你可以尝试 Yhat 开发的 ggplot ;如果你倾向于绘制统计图,那么你可以使用 seaborn;如果你想体验一些更高级的功能,那么你可以尝试下 bokeh

stringr -> nothing

R 语言自带的字符串操作函数非常难用,每次当我需要处理字符串时,我都会做以下两件事:

  • 向大神 Hadley Wickham 表示感谢
  • 导入 stringr

stringr 绝对是一个大救星,该软件包非常友好,我们可以轻易地安装并利用它快捷地处理字符串数据。但是对于 Python 来说,它本身就能够非常快速地处理字符串数据,所以我们不需要类似于 stringr 的第三方软件包!Python 中拥有正则表达式库re,和一个内置的字符串软件包 string

RStudio -> Rodeo

对于许多用户来说,RStudio 是 R 语言中一款非常友好的编辑器。对于 Python 来说,以前可能没有比较好用的编辑器,但现在情况已经不一样了。我们在一年前就发布了 Rodeo 的第一个版本,并在一个月前发布了适用于 Windows, OSX 和 Linux 的 2.0 版本。

Knitr -> Jupyter

在 R 语言中,我们可以利用 knitr 来创建可重复的可视化分析报告,RStudio 中很早就包含了这个功能。在 Python 中,最相近的软件库是 Jupyter。Jupyter notebooks 为多种编程语言提供了一个创建可重复的可视化分析报告的交互式环境。

sqldf -> pandasql

sqldf 是 SQL 用户在 R 中轻松操作数据的一个好方法。在我刚开始喜欢使用 R 语言的时候,我经常利用 sqldf 来处理数据。据我所知,Yhat 开发了一个类似的 Python 软件库,pandasql。这两个软件库拥有同样的功能:利用 SQL 语句来操作数据框并返回相应的数据框。

原文链接:http://blog.yhat.com/posts/moving-from-r-to-python.html 原文作者:Yhat 译者:Fibears

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2017-08-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

[Android/IOS] | 把微博秒拍Twitter的视频装进口袋里的...

12720
来自专栏PPV课数据科学社区

【学习】《R实战》读书笔记(第一章)

第一章 R简介 本章概要 1安装R 2理解R语言 3运行R程序 本章所介绍的内容概括如下。 一个典型的数据分析步骤如图1所示。 图1:典型数据分析步骤 简而言之...

33780
来自专栏牛客网

滴滴前端一面电话面

14340
来自专栏逍遥剑客的游戏开发

VR中对带有约束的物理对象的交互

32760
来自专栏Crossin的编程教室

【每周一坑】用代码给图片配上文字

我们的『每日一坑』栏目里都是一些练手的小题目,难度不高,适合新手用来熟悉编程。如果想要更复杂的大项目,可以上我们的实验室栏目 lab.crossincode.c...

34560
来自专栏哲学驱动设计

090609 T 领域建模

领域建模的重要性     以数据为中心的应用程序开发,面向过程分析方法的核心在于对数据库的设计。     而现在以面向对象的方式进行分析(OOA,OOD)时,领...

20680
来自专栏编程派的专栏

提升 Python 编程效率的十点建议

程序员的时间很宝贵,Python这门语言虽然足够简单、优雅,但并不是说你使用Python编程,效率就一定会高。要想节省时间、提高效率,还是需要注意很多地方的。 ...

1.1K00
来自专栏点滴积累

geotrellis使用(十二)再记录一次惨痛的伪BUG调试经历(数据导入以及读取瓦片)

Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 BUG还原...

30140
来自专栏ThoughtWorks

谈谈命名|TW洞见

今日洞见 文章作者、部分图片来自ThoughtWorks:黄博文。本文封面来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks...

375100
来自专栏编程

32行代码实现微信聊天机器人

在智能手机无所不能的今天,聊天机器人大家并不陌生。语音、文字的,随口都能说出几个。记得最早火起来的,当属人人网上的小黄鸡了吧,那个@小黄鸡风靡一时的时代,如今...

70650

扫码关注云+社区

领取腾讯云代金券