python与R

Python与R不同:

1、Python是一门多功能的语言。数据统计是更多是通过第三方包来实现的。
Python在统计上面的Package有这样一些:
1.Numpy与Scipy。这两个包是Python之所以能在数据分析占有一席之地的重要原因。其中Numpy封装了基础的矩阵和向量的操作,而Scipy则在Numpy的基础上提供了更丰富的功能,比如各种统计常用的分布和算法都能迅速的在Scipy中找到。
2.Matplotlib。这个Package主要是用来提供数据可视化的,其功能强大,生成的图标可以达到印刷品质,在各种学术会议里面出镜率不低。依托于Python,可定制性相对于其他的图形库更高。还有一个优点是提供互动化的数据分析,可以动态的缩放图表,用做adhoc analysis非常合适。
3.Scikit Learn。非常好用的Machine Learning库,适合于用于快速定制原型。封装几乎所有的经典算法(神经网络可能是唯一的例外,不过这个有Pylearn2来补充),易用性极高。
4.Python标准库。这里主要是体现了Python处理字符串的优势,由于Python多功能的属性和对于正则表达式的良好支持,用于处理text是在合适不过的了。

5.Orange,数据挖掘的开源工具,可以用可视化语言或Python进行操作,拥有机器学习组件,还具有生物信息学以及文本挖掘的插件。
6.shogun,机器学习库,主攻大尺度的核函数,尤其是大尺度核函数下的SVM。具有很多SVM的高级用法,比如多核配用等。支持Python、R、C++、Matlab等语言。

7、pyml(a python module for machine learning,支持svm/knn/k-means==)
8.milk(python的机器学习工具包,主要是针对监督学习,包括svm/knn/决策树)

python与R相比速度要快。python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。Python=R+SQL/Hive

R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比python在这方面贫乏不少。

Python的优势在于其胶水语言的特性,一些底层用C写的算法封装在python包里后性能非常高效(Python的数据挖掘包Orange canve 中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。

总的来说Python是一套比较平衡的语言,各方面都可以,而R是在统计方面比较突出。但是数据分析其实不仅仅是统计,前期的数据收集,数据处理,数据抽样,数据聚类,以及比较复杂的数据挖掘算法,数据建模等等这些任务,只要是100M以上的数据,R都很难胜任,但是Python却基本胜任。

补充一下:
Python有专门的数据分析包Pandas用来完成类似SQL的功能,不过Pandas是会把数据都load到内存里,如果数据太大(2G以上)需要想办法分chunk分析,或者用pytables/pyh5转换为hdf5格式的文件在硬盘上分析。
另外如果是windows环境的话,建议用winpython,上面提到的这些包会自带。当然更丰富的是pythonxy可惜这个只有32位的。


2、R的基因是统计,统计基于概率论,概率论又基于数学,用计算机的方式编程,解决某个领域的实际问题。R不需要很长的代码,也不需要设计模式, 一个函数调用,传几个参数,就能实现一个复杂的统计模型,我们需要思考,用什么模型,传什么参数,而不是怎么进行程序设计。

R的思维模式:直接面向数据的语言,面向什么业务,就分析什么数据,让开发者和使用者分离。注意的是样本数据分析能力。

 

在统计分析和绘图功能上,R还是比python更优秀。

3、算法完整性

R与python都是开源的,对常用的算法均有很多第三方库的支持,如统计分析、数据挖掘、机器学习等等。R更偏向于统计分析、时间序列和绘图,python各方面比较均衡。

4、语言风格

R语言是函数式编程语言,Python既支持面向过程编程也支持面向对象的编程,又称胶水语言,风格与java不一样。Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的.

5、接口

R和python均提供了常用的接口,如与数据库的调用等等。

6、python既可作前台又可作后台,有自己的web框架,底层是用C实现的,速度上比不上C或C++。R语言底层也是用C写的,是基于内存计算的,速度与内存有关。

7、大数据

R与python均能支持大数据分析,有相应的接口与hadoop等进行通信与分析。

 

 

总结:

如果只是统计或者只是自己一个人干活,用R;如果你是一个公司要做一个大家一起用的平台并且工作内容涉及到统计以外,用python。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值