导读:本篇文章首席CTO笔记来给大家介绍有关pythonR哪个大数据的相关内容,希望对大家有所帮助,一起来看看吧。
R和 Python 用于统计学分析,哪个更好
R好一些。统计学分析的好多算法,在R里都有。你当它是一个WORD软件,很简单就学会了。
不过R语言学习还是需要至少2天时间,熟练大约需要一个星期到2个星期。 但是之后就是坦途了。
所以R对于统计学分析来说,几乎是必须的,除非你在大公司,人家只培养SAS的人才。否则R对于统计,就是标准配置。
python很强大,但是学习起来难。 不进语言本身难,而是灵活应用。作为一个没有编程基础的人,学习python,一直到使用它去编程,要花费很长时间,至少2个月。
不过,如果你们公司需要用python做统计,也有现成的python统计软件框架,那么python并不难。甚至比R还要简单。2个星期,轻松就搞定了。
对于专业的大数据分析人员来说,这两个工具都必须学。没有学之一的说法。必须的。
(天天有人问这个,我都回答三遍了。)
Python与R的争锋:大数据初学者该怎样选
在当下,人工智能的浪潮席卷而来。从AlphaGo、无人驾驶技术、人脸识别、语音对话,到商城推荐系统,金融业的风控,量化运营、用户洞察、企业征信、智能投顾等,人工智能的应用广泛渗透到各行各业,也让数据科学家们供不应求。Python和R作为机器学习的主流语言,受到了越来越多的关注。数据学习领域的新兵们经常不清楚如何在二者之间做出抉择,本文就语言特性与使用场景为大家对比剖析。
一.Python和R的概念与特性
Python是一种面向对象、解释型免费开源高级语言。它功能强大,有活跃的社区支持和各式各样的类库,同时具备简洁、易读以及可扩展等优点,在近几年成为高人气的编程语言。
Python的优势:
1、Python的使用场景非常多,不仅和R一样可以用于统计分析,更广泛应用于系统编程、图形处理、文本处理、数据库编程、网络编程、Web编程、网络爬虫等,非常适合那些想深入钻研数据分析或者应用统计技术的程序员。
2、目前主流的大数据和机器学习框架对Python都提供了很好的支持,比如Hadoop、Spark、Tensorflow;同时,Python也有着强大的社区支持,特别是近年来随着人工智能的兴起,越来越多的开发者活跃在Python的社区中。
3、Python作为一种胶水语言,能够和其他语言连结在一起,比如你的统计分析部分可以用R语言写,然后封装为Python可以调用的扩展类库。
R语言是一种用来进行数据探索、统计分析和作图的解释型语言,但更像一种数学计算的环境。它模块丰富,为数学计算提供了极为方便的编程方式,特别是针对矩阵的计算。
R语言的优势:
1、R语言拥有许多优雅直观的图表,常见的数据可视化的工具包有:
· 交互式图表rCharts、Plotly,交互时序图
R,Python,Scala和Java,到底该使用哪一种大数据编程语言
R语言:它的有点在于简单易上手,通过R语言,你可以从复杂的数据集中筛选你想要的数据,从负责的模型函数中操作数据,建立有序的图表呈现数字,只需要几行代码就可以了,比如说,像是好动版本的Excel表格。
Pythom语言:Python结合了R语言的快速,处理复杂数据的能力以及更务实的语言特质,迅速地成为主流,也更简单和直观了,尤其是近几年的成长很快。在数据处理范畴内,通常在规模与复杂之间要有个取舍,Python以折中的姿态出现,是相当好的数据处理工具。
java语言:java没有和Python和R语言一样好的可视化功能,也不是统计建模的最佳工具,但是如果你需要建立一个庞大的系统,使用过去的原型,java是最基本的选择了。
Hadoop pand
Hive:为了迎合大量数据处理的需求,以java为基础的大数据开始了。Hadoop为一批数据处理,发展以java为基础的架构关键,相对于其他处理工具,Hadoop慢许多,但是无比的准确可被后端数据库分析广泛使用,和Hive搭配的很好。
Scala:另一个以java为基础的语言,和java很像,对任何想要进行大规模的机械学习或是建立高阶的算法,Scala是逐渐兴起的工具,善于呈现且拥有建立可靠系统的能力。
Kafkaand Storm:是一个特别快速的查询信息系统,缺点是太快了,因此在实施操作时会犯错,有时候会漏掉东西。使用Scala写出来的架构,大幅增加他在串流处理的受欢迎程度。
R,Python,Scala 和 Java,到底该使用哪一种大数据编程语言
如果你对晦涩的统计运算进行繁重的数据分析工作,那么你不青睐R才怪。如果你跨GPU进行NLP或密集的神经网络处理,那么Python是很好的选择。如果想要一种加固的、面向生产环境的数据流解决方案,又拥有所有重要的操作工具,Java或Scala绝对是出色的选择。
有一个大数据项目,你知道问题领域(problem domain),也知道使用什么基础设施,甚至可能已决定使用哪种框架来处理所有这些数据,但是有一个决定迟迟未能做出:我该选择哪种语言?(或者可能更有针对性的问题是,我该迫使我的所有开发人员和数据科学家非要用哪种语言?)这个问题不会推迟太久,迟早要定夺。
当然,没有什么阻止得了你使用其他机制(比如XSLT转换)来处理大数据工作。但通常来说,如今大数据方面有三种语言可以选择:R、Python和Scala,外加一直以来屹立于企业界的Java。那么,你该选择哪种语言?为何要选择它,或者说何时选择它?
下面简要介绍了每种语言,帮助你做出合理的决定。
R
R经常被称为是“统计人员为统计人员开发的一种语言”。如果你需要深奥的统计模型用于计算,可能会在CRAN上找到它――你知道,CRAN叫综合R档案网络(Comprehensive R Archive Network)并非无缘无故。说到用于分析和标绘,没有什么比得过ggplot2。而如果你想利用比你机器提供的功能还强大的功能,那可以使用SparkR绑定,在R上运行Spark。
然而,如果你不是数据科学家,之前也没有用过Matlab、SAS或OCTAVE,可能需要一番调整,才能使用R来高效地处理。虽然R很适合分析数据,但是就一般用途而言不太擅长。你可以用R构建模型,但是你需要考虑将模型转换成Scala或Python,才能用于生产环境,你不太可能使用这种语言编写一种集群控制系统(运气好的话,你可以对它进行调试)。
Python
如果你的数据科学家不使用R,他们可能就会彻底了解Python。十多年来,Python在学术界当中一直很流行,尤其是在自然语言处理(NLP)等领域。因而,如果你有一个需要NLP处理的项目,就会面临数量多得让人眼花缭乱的选择,包括经典的NTLK、使用GenSim的主题建模,或者超快、准确的spaCy。同样,说到神经网络,Python同样游刃有余,有Theano和Tensorflow;随后还有面向机器学习的scikit-learn,以及面向数据分析的NumPy和Pandas。
还有Juypter/iPython――这种基于Web的笔记本服务器框架让你可以使用一种可共享的日志格式,将代码、图形以及几乎任何对象混合起来。这一直是Python的杀手级功能之一,不过这年头,这个概念证明大有用途,以至于出现在了奉行读取-读取-输出-循环(REPL)概念的几乎所有语言上,包括Scala和R。
Python往往在大数据处理框架中得到支持,但与此同时,它往往又不是“一等公民”。比如说,Spark中的新功能几乎总是出现在Scala/Java绑定的首位,可能需要用PySpark编写面向那些更新版的几个次要版本(对Spark Streaming/MLLib方面的开发工具而言尤为如此)。
与R相反,Python是一种传统的面向对象语言,所以大多数开发人员用起来会相当得心应手,而初次接触R或Scala会让人心生畏惧。一个小问题就是你的代码中需要留出正确的空白处。这将人员分成两大阵营,一派觉得“这非常有助于确保可读性”,另一派则认为,2016年,我们应该不需要就因为一行代码有个字符不在适当的位置,就要迫使解释器让程序运行起来。
Scala
现在说说Scala:在本文介绍的四种语言中,Scala是最轻松的语言,因为大家都欣赏其类型系统。Scala在JVM上运行,基本上成功地结合了函数范式和面向对象范式,目前它在金融界和需要处理海量数据的公司企业中取得了巨大进展,常常采用一种大规模分布式方式来处理(比如Twitter和LinkedIn)。它还是驱动Spark和Kafka的一种语言。
由于Scala在JVM里面运行,它可以立即随意访问Java生态系统,不过它也有一系列广泛的“原生”库,用于处理大规模数据(尤其是Twitter的Algebird和Summingbird)。它还包括一个使用非常方便的REPL,用于交互式开发和分析,就像使用Python和R那样。
我个人非常喜欢Scala,因为它包括许多实用的编程功能,比如模式匹配,而且被认为比标准的Java简洁得多。然而,用Scala来开发不止一种方法,这种语言将此作为一项特色来宣传。这是好事!不过考虑到它拥有图灵完备(Turing-complete)的类型系统和各种弯弯曲曲的运算符(“/:”代表foldLeft,“:\”代表foldRight),很容易打开Scala文件,以为你看到的是某段讨厌的Perl代码。这就需要在编写Scala时遵循一套好的实践和准则(Databricks的就很合理)。
另一个缺点是,Scala编译器运行起来有点慢,以至于让人想起以前“编译!”的日子。不过,它有REPL、支持大数据,还有采用Jupyter和Zeppelin这一形式的基于Web的笔记本框架,所以我觉得它的许多小问题还是情有可原。
Java
最终,总是少不了Java――这种语言没人爱,被遗弃,归一家只有通过起诉谷歌才有钱可赚时才似乎关心它的公司(注:Oracle)所有,完全不时髦。只有企业界的无人机才使用Java!不过,Java可能很适合你的大数据项目。想一想Hadoop MapReduce,它用Java编写。HDFS呢?也用Java来编写。连Storm、Kafka和Spark都可以在JVM上运行(使用Clojure和Scala),这意味着Java是这些项目中的“一等公民”。另外还有像Google Cloud Dataflow(现在是Apache Beam)这些新技术,直到最近它们还只支持Java。
Java也许不是摇滚明星般备受喜爱的首选语言。但是由于研发人员在竭力理清Node.js应用程序中的一套回调,使用Java让你可以访问一个庞大的生态系统(包括分析器、调试器、监控工具以及确保企业安全和互操作性的库),以及除此之外的更多内容,大多数内容在过去二十年已久经考验(很遗憾,Java今年迎来21岁,我们都老矣)。
炮轰Java的一个主要理由是,非常繁琐冗长,而且缺少交互式开发所需的REPL(R、Python和Scala都有)。我见过10行基于Scala的Spark代码迅速变成用Java编写的变态的200行代码,还有庞大的类型语句,它们占据了屏幕的大部分空间。然而,Java 8中新的Lambda支持功能对于改善这种情况大有帮助。Java从来不会像Scala那么紧凑,但是Java 8确确实实使得用Java进行开发不那么痛苦。
至于REPL?好吧,目前还没有。明年推出的Java 9会包括JShell,有望满足你的所有REPL要求。
R 和 Python 用于统计学分析,哪个更好
2012年的时候我们说R是学术界的主流,但是现在Python正在慢慢取代R在学术界的地位。不知道是不是因为大数据时代的到来。
Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。所以有人说:Python=R+SQL/Hive,并不是没有道理的。
Python的一个最明显的优势在于其胶水语言的特性,很多书里也都会提到这一点,一些底层用C写的算法封装在Python包里后性能非常高效
(Python的数据挖掘包Orange
canve
中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。但是,凡事都不绝对,如果R矢量化编程做得好的话(有点小难度),会
使R的速度和程序的长度都有显著性提升。
R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面,无论是经典还是前沿的方法都有相应的包直接使用。
相比之下,Python之前在这方面贫乏不少。但是,现在Python有了
pandas。pandas提供了一组标准的时间序列处理工具和数据算法。因此,你可以高效处理非常大的时间序列,轻松地进行切片/切块、聚合、对定期
/不定期的时间序列进行重采样等。可能你已经猜到了,这些工具中大部分都对金融和经济数据尤为有用,但你当然也可以用它们来分析服务器日志数据。于是,近
年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大替代方案。
做过几个实验:
1.
用python实现了一个统计方法,其中用到了ctypes,multiprocess。
之后一个项目要做方法比较,又用回R,发现一些bioconductor上的包已经默认用parallel了。(但那个包还是很慢,一下子把所有线程都用掉了,导致整个电脑使用不能,看网页非常卡~)
2.
用python
pandas做了一些数据整理工作,类似数据库,两三个表来回查、匹配。感觉还是很方便的。虽然这些工作R也能做,但估计会慢点,毕竟几十万行的条目了。
3.
用python
matplotlib画图。pyplot作图的方式和R差异很大,R是一条命令画点东
西,pylot是准备好了以后一起出来。pyplot的颜色选择有点尴尬,默认颜色比较少,之后可用html的颜色,但是名字太长了~。pyplot
的legend比R
好用多了,算是半自动化了。pyplot画出来后可以自由拉升缩放,然后再保存为图片,这点比R好用。
总的来说Python是一套比较平衡的语言,各方面都可以,无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处
理,Python都有着明显优势。
而R是在统计方面比较突出。但是数据分析其实不仅仅是统计,前期的数据收集,数据处理,数据抽样,数据聚类,以及比较复杂的数据挖掘算法,数据建模等等
这些任务,只要是100M以上的数据,R都很难胜任,但是Python却基本胜任。
结合其在通用编程方面的强大实力,我们完全可以只使用Python这一种语言去构建以数据为中心的应用程序。
但世上本没有最好的软件或程序,也鲜有人能把单一语言挖掘运用到极致。尤其是很多人早先学了R,现在完全不用又舍不得,所以对于想要学以致用的人来说,如果能把R和Python相结合,就更好不过了,很早看过一篇文章——让R与Python共舞,咱们坛子里有原帖,就不多说了,看完会有更多启发。
结语:以上就是首席CTO笔记为大家介绍的关于pythonR哪个大数据的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。