Python VS R,哪个更适合开发者?

21CTO社区导读:Python和R同时出现在20世纪九十年代。它为数据科学家提供了大量的数据模型操作的能力。在发展了30年后,Python与R开始出现不同的爱好者阵营。

90年代出现了互联网,这一事物永远改变了世界,改变了人们的生活。90年代的编程文化并不那么深厚,但就是这十年,Python和R走进了编程世界,并为数据科学家和工程师们提供大量数据模型操作的能力。30年以来,Python和R语言一直在发展,成为如今数据处理的两大阵营。

作为一名码农,当我们要为大数据模型处理做编程语言选项时,会出现一些纠结。如果有一个编程语言就像Neo在The Matrix中做选择一样简单,这样会不会很好?

“当你服用了蓝色药丸:故事结束,在床上醒来,你只相信现实存在的东西;如果你服了红色药丸:你留在仙境,(仙人)会告诉你兔子的洞有多深。”

如果创业与工作的风险分析,答案很简单:使用红色药丸才能获得真实的答案,它可以让我们跳入兔子洞,通过实际数据获得解决风险的答案。

本文是对Python和R语言的对比,这就意味着,你想要的是这颗红色药丸还是其它的红色药丸?

选择自己的药丸:哪个可以解决我们的风险

R与Python是数据分析领域中最流行的两个编程语言,许多数据分析师和专家视为近距离的竞争伙伴。先看他们的共同点:

1、它们都是免费的

2、它们都有活跃的社区支持

3、它们都提供开源的工具和库

就像选择一件心爱之物一样,这三样的相似度确实让人难以取舍。

在The Matrix中,Morpheus给了Neo一个特殊用途的药片:从数百万的人身上识别身体信号,然后用这些信息来收集。与风险模型不同,我们需要有正确的代码来收集和分析所需之数据。通过Python和R提供的强大的编程功能,都可以让你进入兔子洞。真正的问题是:哪种红色药丸提供最简单的数据路径,以最好的方式提供最可用的结果?

因此,不仅仅程序的功能会影响R或Python的偏好,还需要考虑使用场景的上下文。

R语言的优势在于统计和图形模型,因此它更多的被学者、数据科学家和统计人员所采用;而Python更注重生产力和代码可读性,它在开发者、工程师和程序员人群中较受欢迎。

而Python作为一种通用语言被广泛应用在许多领域,包括Web开发、机器学习。它在投资银行与对冲基金等领域也越来越受欢迎,例如银行也用它来部署金融、风险管理和交易管理等平台。有意思的是,大多数金融服务领域的科技工作者们,对Python并不是那么热心。因此,在Python与R的辩论中,有着深厚软件工程背景的数据科学家们更喜欢Python,而统计学家们可能更依赖R语言来工作。

话虽如此,Python和R语言之间其实还是存在一些区别。我们总结如下:

可用性

Python已经获处了参与机器学习的数据科学家们的积极响应,这是因为Python的用户学习曲线较低。

Python的真正优势是它的简单性,无与伦比的可读性和灵活性,这些都由Python提供的精确高效的语法提供。

Python是一个成熟的编程语言,非常适合实现生产环境算法以及将Web应用程序集成数据分析任务中。

R语言对于探索性的研究工作很有帮助,并且更适合于复杂的统计分析,对于大数据特别适合。但是R语言对于初学者来说,要有一个陡峭的学习曲线,且在使用中搜索可用的包并不那么容易,从而导致延长数据分析过程,也就延迟了上线时间。

虽然R语言是一个很好的工具,但它在数据分析之外的功能很有限。R中的很多用户库都写得比较差,通常情况下运行缓慢,这对开发者和用户来说是一个问题。

库与包

Python有着丰富的开发库,可显著缩短项目开始开发到有意义结果之间的时间间隔。

Python语言的软件库相当丰富,Python Package Index(PyPI)目前包括130,641个软件包。这些库可在多个环境下对机器学习算法测试和比较。

而且这些软件包提供的解决方案直观而且灵活。

比如PyBrain就是一个非常好的例子,PyBrain是一个模块化的机器学习库,为机器学习任务提供强大的算法。还有一个流行的机器学习库,scikit-learn提供了数据挖掘工具来加强Python现有优秀的机器学习可用性。

相比之下,R语言的CRAN(R档案网络)也是一个较大的代码存储库,它有着1,0000个软件包,可以很方便的安装在R中。很多R用户每天都很活跃地向该库中贡献代码,并且R的许多功能,例如统计计算、数据可视化的功能无以伦比。虽然对初学者来说学习曲线比较陡峭,但一旦用户掌握了基础知识,学习先进的技术就会越发快速。R想在机器学习领域媲美Python,R中的Nnet包具有快速构建神经网络模型的能力。通过提供一系列函数来提升所构建模型的有效性,Caret也可以加强R在机器学习的能力。

对于许多统计人员来说,R中的实现和开发文档比在Python提供的更容易理解。

一个好消息是,在Python和R中的新软件包,逐渐削平两个语言存在的弱点。例如Altair for Python和Dplyr for R都支持数据可视化和数据处理等传统流程。

数据可视化

数据可视化是数据分析领域的一个重要组成部分,可以通过识别模式和相关性来简化复杂的信息。

R语言的可视化软件包有ggplot2,ggvis,googleVis和rCharts。通过R进行可视化可以高效并有准备地让复杂的原始数据集看起来信息丰富并且赏心悦目。

与R语言相比较,Python有着大量的交互特性,比如geoplotlib和Bokeh,要选择最好和最相关的选项,产生的复杂性有时会让人打怵。

使用Python写的代码:

importnumpyasnp# linear algebra

importpandasaspd# data processing, CSV file I/O (e.g. pd.read_csv)

data=pd.read_csv('../input/survey_results_public.csv')# Get users that have worked in R or Python in the last year

data['r_user']=data['HaveWorkedLanguage'].apply(lambdax:'R'instr(x).split('; '))

data['python_user']=data['HaveWorkedLanguage'].apply(lambdax:'Python'instr(x).split('; '))

使用R写的代码:

importmatplotlib.pyplotasplt

importseabornassnspal=sns.color_palette()

fig,ax=plt.subplots()plt.xlabel('Language')

plt.ylabel('User count')

plt.title('Number of surveyed users')

plt.bar([,1],[data['r_user'].sum(),data['python_user'].sum()],color=pal[3])

ax.set_xticks([,1])

ax.set_xticklabels(('R','Python'))

print()

将数据可视化通过R语言处理会更好,而且看起来更简单。

我们的建议

无论是Python还是R,这两种语言都在积极开发中,并且已经各自有一套开发工具。

如果你刚刚开始学习,一个简单的选择就是基于你的舒适区。 比如,如果你来自计算机科学与技术/开发者背景,你可能会对Python感到更舒适。如果你来自统计/分析师/数据专家背景,R语言可能会更直观。

我们喜欢R,但我们更喜欢用Python。Python是一种通用编程语言,可以做任何你想做的事情。

如上所述,Python还有精彩的Keras套装,让我们可以轻松开始,并向深入学习。

作者:含章

说明:作者投稿作品,本站有优化

来源:21CTO

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180428G1VXYB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券