Python与R语言的简要对比

 更新时间:2017年11月14日 14:30:59   作者:大虾卢  
这篇文章主要介绍了Python与R语言的简要对比,小编觉得还挺不错的,这里分享给大家,需要的朋友可以了解下。

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

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

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

首先还是我Python神图压镇:

首先介绍一下R语言吧:

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

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

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

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

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

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

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

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

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

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

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

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

详细指标项如下:

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

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

总结

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

python+opencv实现的简单人脸识别代码示例

Python编程实现蚁群算法详解

python实现图片处理和特征提取详解

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

相关文章

  • Python利用Selenium实现弹出框的处理

    Python利用Selenium实现弹出框的处理

    经常出现在网页上的基于JavaScript实现的弹出框有三种,分别是 alert、confirm、prompt 。本文主要是学习如何利用selenium处理这三种弹出框,感兴趣的可以了解一下
    2022-06-06
  • Python将string转换到float的实例方法

    Python将string转换到float的实例方法

    在本篇文章中小编给大家分享的是关于Python将string转换到float的实例方法以及相关知识点,需要的朋友们参考下。
    2019-07-07
  • python 函数进阶之闭包函数

    python 函数进阶之闭包函数

    这篇文章主要介绍了python 函数进阶之闭包函数,内函数使用了外函数的局部变量,并且外函数把内函数返回出来的过程叫做闭包,里面的内函数是闭包函数,下文相关介绍需要的小伙伴可以参考一下
    2022-04-04
  • python中lambda函数 list comprehension 和 zip函数使用指南

    python中lambda函数 list comprehension 和 zip函数使用指南

    这篇文章主要介绍了python中lambda函数 list comprehension 和 zip函数使用方法,非常的实用,有需要的朋友可以参考下
    2014-09-09
  • Python面向对象之模块详解

    Python面向对象之模块详解

    这篇文章主要为大家介绍了Python面向对象之模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 实例详解Matlab 与 Python 的区别

    实例详解Matlab 与 Python 的区别

    Python是一种面向对象的解释型计算机程序设计语言。这篇文章主要介绍了Matlab 与 Python 的区别及优势,感兴趣的朋友跟随小编一起看看吧
    2019-04-04
  • django实现悲观锁乐观锁的项目实践

    django实现悲观锁乐观锁的项目实践

    在Django中,我们可以通过实现悲观锁和乐观锁来保证数据的安全性,本文就来介绍一下django实现悲观锁乐观锁的项目实践,感兴趣的可以了解一下
    2023-08-08
  • Python lambda匿名函数深入讲解

    Python lambda匿名函数深入讲解

    lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数
    2023-01-01
  • 使用Python初始化多维列表遇到的问题详解

    使用Python初始化多维列表遇到的问题详解

    这篇文章主要介绍了使用Python初始化多维列表遇到的问题详解,二维列表是将其他列表作为它的元素的列表,前一章介绍了如何使用一个列表来存储线性的元素集合,可以使用列表来存储二维数据,需要的朋友可以参考下
    2023-11-11
  • Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解

    Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解

    这篇文章主要介绍了Python发送QQ邮件实例与QQ邮箱设置详解,需要的朋友可以参考下
    2020-02-02

最新评论