来源商业新知网,原标题:你爱 “Python”的身体,还是“R”的灵魂?

数据科学界有三大宝: Python、SAS和R,不过像SAS这种高端物种,不是我们这些平民能供养得起的啊。

根据 IEEE Spectrum的最新排名,R和Python仍然是最热门的数据科学编程语言。本文将从数据可视化、建模库、易学性和社区支持等四方面入手,比较R和Python的语言性能。

数据可视化

数据科学的一个重要部分是交流。分析成果需要以一种有效、易懂的方式展示出来。因此,任何用于数据科学的语言或软件包都应该具有良好的数据可视化工具。良好的数据可视化具有清晰性。无论模型有多复杂,都会用一种简单明了的方法来说明结果,即使是外行人也能理解。

Python

Python以其大量的库而闻名。有很多库可以用于绘图和可视化。最热门的库是matplotlib和seaborn。matplotlib库改编自MATLAB,具有相似的特性和风格。matplotlib库是一个非常强大的可视化工具,内置了各种功能,特别是在与其他Python数据科学库pandas和numpy很好地协作时,它可以非常容易地用于绘制简单的plot函数。

虽然matplotlib可以生成大量的图形和图表,但它缺乏简单性。最麻烦的方面是调整plot函数的大小:如果存在很多变量,那么你可能会花费很多功夫来试图把它们整齐地放在一个plot函数中。另一个大问题是创建subplot函数,同样,将它们都调整到一个图中可能会变得很复杂。

现在,基于matplotlib的seaborn包含了更多的美学图形和plot函数。这个库无疑是对matplotlib陈旧风格的改进,但它仍然存在同样的基本问题:创建图形可能非常复杂。这也是Python未来的改进方向。

R

有许多库可以用于R的数据可视化,其中ggplot2在使用和广泛度方面首屈一指。该库使用图形哲学语法,使用图层在绘图上绘制对象。层之间通常是相互连接的,并且可以共享许多共同的特性。这些层让你可以用很少的代码创建非常复杂的图。该库允许绘制摘要函数。综上,ggplot2比matplotlib更加灵活简洁,因此在这个领域R优势更为明显。

但是,值得注意的是,Python包含了一个与R中原始ggplot2功能类似的ggplot库。

建模库

数据科学需要使用许多算法。这些复杂的数学方法需要稳健的计算。重新编写算法代码对数据科学家而言相当费时,他们需要具有内置建模支持的语言。Python和R刚好满足这一点。

Python

Python拥有大量的机器学习库,包括scikit-learn、XGboost、TensorFlow、Keras和PyTorch等。Python也有pandas,它可以兼容表格形式的数据。pandas库使处理csv或基于excel的数据变得非常容易。除此之外,Python还有很优秀的科学软件包,比如numpy。numpy可以帮助你瞬间完成复杂的数学计算,比如矩阵运算。所有这些包组合在一起,使Python成为一个适用于硬核建模的强大工具。

R

和Python一样,R也有大量的库——大约10000个。其中应用最广泛的是mice,rpart, party和caret。这些包将从预建模阶段到后模型/优化阶段给予你帮助。

这些库几乎可以解决所有的数据问题。但相比之下,Python缺乏统计非线性回归(除了简单的曲线拟合)和混合效应模型。另一方面,R缺乏Python所提供的速度,尤其是在处理大量数据的时候。

易学性

市场对数据分析和处理人员的渴求度相当高。许多人都希望加入数据科学的大潮,其中很多人几乎没有编程经验。因此,在比较两种语言时,需要考虑其是否简单好学易上手。

Python

Python设计于1989年,其理念是强调代码的可读性和使编程变得简单或简洁,Python的设计者显然做到了,因为这种语言非常容易学习。虽然Python的语法灵感来自于C,但与C不同的是,它并不复杂。因此,Python作为初学者的语言学习首选,任何人都可以在相对较短的时间内学会它。

R

R语言也并不难学。它比c++或JavaScript等许多语言都要简单。与Python一样,R的大部分语法都是基于C的,但与Python不同的是,R最初是专门为统计学家和科学家设计的,因此门槛较高。

社区支持

作为一名数据科学家,需要经常解决一些数据难题。在难以找到相关的库或包解决问题的情况下,可以在语言的官方文档或在线社区论坛中搜索,从而获得良好的社区支持。

这两种语言都有活跃的Stackoverflow成员,并且都有一个活跃的邮件列表(在这个列表中,你可以轻松地向专家询问解决方案)。R有在线的R文档,可以在其中找到关于某些函数和函数输入的信息。大多数Python库,比如pandas和scikit-learn,都有自己的官方在线文档来解释每个库。

这两种语言都有大量的用户基础,二者都有非常活跃的支持社区。不难看出,两者在这方面似乎是平等的。

结论

R还是Python?无疑,这两种都是很优秀的语言。如果追求简单上手,可以选择Python,如果想轻松创建视觉效果,那么R语言是首选。

左手是“Python”的身体,右手是“R”的灵魂,你爱哪个?的更多相关文章

  1. Python计算身体质量指数BMI

    使用Python计算身体质量指数BMI 运行结果如下: 源代码: 1 ''' 2 3. 利用函数思想,将"身体质量指数BMI"源程序封装成为一个函数并调用. 3 :param he ...

  2. 迷宫问题python实现(靠右手摸墙)

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 这是大二时候的数学模型毕业课程设计,我选择了自己研究盲人穿越迷宫的问题.当然后来再在网上查了这个问 ...

  3. 一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

           关于文件操作的几种常用方式,网上已有很多解说,内容很丰富,但也因此有些杂乱复杂.今天,我就以我个人的学习经验写一篇详细又易懂的总结文章,希望大家看完之后会有所收获. 一.核心功能 ‘r’ ...

  4. Python换行符问题:\r\n还是\n?

    今天写一个Python脚本去读取一个txt文件时,发现一个很有趣的现象: 如果这个文件是用atom编辑器写的,发现换行符是'\r'.这样一来去逐行读取数据就失效了,因为用open函数 去打开该文件re ...

  5. python中字符串前的r什么意思

    Python中,u表示unicode string,表示使用unicode进行编码,没有u表示byte string,类型是str,在没有声明编码方式时,默认ASCI编码.如果要指定编码方式,可在文件 ...

  6. python中的\n、\r与\b

    python中使用print函数,有时候会使用end参数来控制字符输出效果,这时候\n.\r与\b就派上用场了. \n 代表换行,也就是从本行换到下一行 \r 代表回车,也就是回到本行最开始的位置,从 ...

  7. Python 字符串前面加u,r,b,f的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...

  8. python 中 \n 和转义r的作用和\r的实际应用

    我们先看看这张转义字符图: 1. 知识储备 \r 表示将光标的位置回退到本行的开头位置 \b 表示将光标的位置回退一位 在 python 语言中, 使用 print 打印输出时,默认是会进行换行的.如 ...

  9. python学习之 字符串前'r'的用法

    在打开文件的时候open(r'c:\....') 加r和不加''r是有区别的 'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子 ...

随机推荐

  1. pycharm2018.11最新激活码

    第一步:先按下键盘的win + r ,然后复制c:\windows\system32\drivers\etc粘贴到对话框回车打开文件管理器: 第二步:打开hosts文件,将0.0.0.0 accoun ...

  2. python中防止字符串转义

    有学生问了个问题,试了好多办法都不行,搜也搜不到,只能自己尝试了,顺利解决. 问题描述: 如果一个字符串包含转义字符,如“adfdfasd\tfdsadf\t”,正常print会将\t看作转义字符ta ...

  3. 使用phpunit测试yaf项目操作步骤

    yaf + phpunit 使用phpunit对yaf进行测试的核心在于bootstrip文件的配置. *1. 首先在项目目录下创建tests文件,并在tests中创建phpunit.xml < ...

  4. nginx的location root alias指令以及区别

    原文:http://blog.csdn.net/bjash/article/details/8596538 location /img/ { alias /var/www/image/; } #若按照 ...

  5. Ubuntu 16.04 安装 Python3.6

    直接在官网下载 Python3.6.3 的源代码,解压缩,按照 README.rst 内说明步骤编译安装即可,这样 pip3.6 也会自动安装. 注意第一步配置时最好指定安装目录, $ ./confi ...

  6. 知识点:Mysql 数据库索引优化实战(4)

    知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 一:插入订单 业务逻辑:插 ...

  7. hive 中间会话临时文件自动清理脚本

    hive在运行过程中,我们经常会发现 hdfs /tmp/hive/hive or hdfs 目录占用空间巨大,我这里已经清理过了所以,相对较小.但是初次使用hive的用户,一定会发现 随着时间的推移 ...

  8. 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法

    故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...

  9. SQL查询某库所有的表所有的字段及字段的属性

    then d.name else null end) 表名, a.colorder 字段序号, a.name 字段名, ( then '√'else '' end) 标识, ( then '√' el ...

  10. 检测Tensorflow可用设备(比如:显卡)

    打开python命令行,输入以下命令: python -c "from tensorflow.python.client import device_lib;device_lib.list_ ...