Python与R语言的简要对比


Posted in Python onNovember 14, 2017

数据挖掘技术日趋成熟和复杂,随着互联网发展以及大批海量数据的到来,之前传统的依靠spss、SAS等可视化工具实现数据挖掘建模已经越来越不能满足日常需求,依据美国对数据科学家(data scientist)的要求,想成为一名真正的数据科学家,编程实现算法以及编程实现建模已经是必要条件;目前很多从事数据挖掘工作的人,大多都是出身非计算机专业,本身对编程基础比较低,所以找到一门快速上手而又高效的编程语言是至关重要的,好的工具和编程语言可以起到事半功倍的效果。

目前在数据挖掘算法方面用的最多的编程语言有:Java、C++、C、Python、R等等

R语言作为统计界第一语言(软件),很多时候与我们号称分析界第一语言的Python老是被人拿起来对比,所以今天专门做了一个表格,简介一下R语言与Python语言的对比情况。

首先还是我Python神图压镇:

Python与R语言的简要对比

首先介绍一下R语言吧:

有个小段子,说为什么要叫R语言呢?就是因为两位创始人的名字,都是以"R"开头的,所以,干脆一拍即合,就叫R语言吧……

Python与R语言的简要对比

R语言有很多的特点……当然,看这张图,是不是觉得很眼熟啊,没错,如果看过以前那篇“Python大法好”的文章的同学,发现,R语言怎么和Python的特性这么相似捏?

Python与R语言的简要对比

其实R也有很多自己特性,下面是它最显著的几个特性:

1、就是命令模式。Python虽然也支持命令模式,但是相对来说,更偏向于流程控制语句,也就是可以写一堆语句,然后执行。R本身基本上不需要用到流程控制(当然,它也支持流程控制)。

2、就是交互性。这样是命令模式的一个特点,敲回车,出结果。但是又不像SPSS那种用鼠标扎针的交互方式(在键盘上运指如飞逼格瞬间提升很多……好莱坞大片里面,高手黑客都是不用鼠标的,当然,这样很合理,SSH或者Telent到远程服务器上,怎么鼠标?)

3、也是R语言最大的特点,统计学特性……好吧R语言与其他所有计算机语言最大的本质区别,就是它是一门统计学家发明的语言(其他语言,基本上都是码农发明的,当然,也有数学家发明的),那么就有很多神奇特点。

比如:赋值的时候,不用等号(=),用的是指向(<-),带来的问题就是要写a<-5

这种语句,就需要a<(-5)这样写。

比如对象下面的属性,不用点(.),而是用刀乐($)。当然,点也能用,但是又带来各种问题,比如R语言的变量命名法则不用遵循匈牙利法则……可以用中文啊有木有:

Python与R语言的简要对比

最反人类(反(程序)猿类)的设计,就是它的数组下标从1开始啊有木有!!所有的程序语言都是从0开始的有木有啊!!

最后就是内存问题:R语言被要求把所有数据都加载到内存里面去进行运行……我卖噶!!现在动辄GB没事就TB就数据,作死要不要做得这么彻底?(当然,现在Spark也支持R了……这是一个好消息,大家都是内存计算,难兄难弟啊)

最后贴出我Python大法与R大法的对比图:

Python与R语言的简要对比

详细指标项如下:

Python程序猿经常说的一句话:别看我们运行慢,但是我们写得快啊……但是这个对比R就没优势了,R的代码量比Python更少……当然,是比R能够完成的任务的情况下。

实际上这种对比并没有太大的意义,比较硬要说R是一种语言,还不如说它更像是一个分析工具,是一个软件……而Python是一个支持大型软件工程项目的开发语言(不信,你用R写个web网站我看看……Python就可以。)

Python与R语言的简要对比

总结

以上就是本文关于Python与R语言的简要对比的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。

Python 相关文章推荐
使用Python操作Elasticsearch数据索引的教程
Apr 08 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
python使用xslt提取网页数据的方法
Feb 23 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
python中的json总结
Oct 11 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
Python如何使用神经网络进行简单文本分类
Feb 25 Python
Python基础语言学习笔记总结(精华)
Nov 14 #Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 #Python
python中os和sys模块的区别与常用方法总结
Nov 14 #Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 #Python
人机交互程序 python实现人机对话
Nov 14 #Python
python密码错误三次锁定(实例讲解)
Nov 14 #Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 #Python
You might like
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP基础知识回顾
2012/08/16 PHP
PHP代码优化技巧小结
2015/09/29 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
python备份文件的脚本
2008/08/11 Python
浅析Python多线程下的变量问题
2015/04/28 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
使用python实现tcp自动重连
2017/07/02 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
中专生自我鉴定
2013/12/17 职场文书
小学生环保标语
2014/06/13 职场文书
社区护士演讲稿
2014/08/27 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
2015入党个人自传范文
2015/06/26 职场文书
运动会宣传稿100字
2015/07/23 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
python+opencv实现视频抽帧示例代码
2021/06/11 Python
Python字典的基础操作
2021/11/01 Python
Windows server 2012搭建FTP服务器
2022/04/29 Servers
MySQL 数据表操作
2022/05/04 MySQL