关键词不能为空

当前您在: 主页 > 英语 >

r 和 python (numpy scipy pandas) 用于统计学分析哪个更好? 知乎精选

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 14:08
tags:

-

2021年3月3日发(作者:非命)


R




Python (numpy scipy pandas)


用于统计学分析,


哪个更


好?




知乎精选








总的概 括:


R


主要在学术界流行,


pytho n(numpy scipy)


在工程方便比较实用。



R



S


< p>
Splus


)的开源版本,或者下一代。发源地在新西兰

< br>奥克兰。


这个软件的统计背景很浓烈。


我这里浓烈的意思 是,


如果你不熟习统计知识(历史)的话,


R

< br>的帮助文档看起来


是很累的。由统计背景的人开发。


R< /p>


的维护组叫


CRAN-R



在生物信息方便,有个叫


bioconductor


的组织,里面有很多


生物信息方面可以用的软件包,


他们有一套 自己维护


package


系统。



Python


是个综合语言


(这里特指指< /p>


CPython


解释器)



numpy


scipy


是数值计算的扩展包,


pandas


是主要用来做数据处理



numpy


依赖)



sympy


做符号计算(类似


mathematica


?)


此外还有一些不太成熟的包如


sciki learn



statistical models



成熟度不如


R


。但是 已经到了可用的水平了。是读计算机的


人写的统计包。


ipyt hon


更新到


1.0


以后,


功能基本完善,



notebook

< p>
非常强大(感觉就像


mathematica)


而 且还是基于


web


,在合作分享方面非常好用。



性能:



大家都说


R


慢,特别是


CS


的人 。其实这里主要是两点:一



R


里面数 组的调用都是用复制的,二是


Rscript


慢。三是


处理大数据慢。如果


R


用的好的话,

< p>
R


是不太慢的。具体来


说就是

Rscript


用的少,多用命令,跑点小数据。这样的话,


实际在跑的都是背后的


fortran


C


库。


他们都有快二三十年


历史了 。可谓异常可靠,优化得不能再优化了(指单线程,


如果去看源代码挥发先许多莫名的常 数,永用了以后精度高


速度快!



。比 如一个自己编写一个


R


脚本,


loop



loop



那种,那真是想死的心都会有。外加一点,


R


处理文本文件


很慢!



Python

归根揭底还是个有解释器的脚本语言,


而且有致命伤


——< /p>


GIL


,但


python


最难能可贵的就是它很容易变得更快。


比如


pypy< /p>



cython


,或者直接


ctypes



C


库。纯< /p>


python



个原型,然后就开是不断 的


profiling


和加速吧。很轻易可以

< br>达到和


C


一个数量级的速度,但是写程序、调试的时间少 了


很多。



并行计算:



R v15

< p>
之后有了自带的


parallel


包,

< p>
用挺轻松的。


不过其实就


是不停的


fork


,或者


mpi


,内存 消耗挺厉害的。


parSapply



parApply


什么的,真是很好用。


Python


虽然有


GIL


——并 行计算的死敌,但是有


multiprocessing(fork

依赖


)


,是可以共享数据的什么的,估

< br>计内存消耗方面比


R


好点,


数据 零散的话


overhead


很多。


到< /p>



MPI


的话,


mpi4py


还是挺好用的。用


cython

< br>的话结合


openmp


可以打破


GIL



但是过程中不能调用


pyth on


的对象。



学习曲线:假设什么编程都不会的同学。


R


一开始还是很容易上手的,


查到基本的命令,

< p>
包,


直接


print


一下 就有结果了。


但是如果要自己写算法、


优化性能的时候,


学习难度陡增。



Python


么,


挺好学的,


绝大多数的帮助文档都比

< p>
R


好了许多。


有些包用起来没

R


方便。总的来说深入吼


R


陡。< /p>



扩展资源:



基本上新的统计方法都会有


R



pac kage


,安装实用都不麻


烦。但是基本上都是搞统计的人写的 计算机包。所以效能上


可能有问好。比较出名的有两个包的管理网站,

< br>cran-r



bioconductor

< p>



所以搞生化的估计


R


用起来很方便。



python


的统计计算包们比


R


少,多很年轻,


还在不断的开发


中。优于是计算机人写的统计包,用起来的时候要多涨个 心


眼。



画图:



R


自 带的那些工具就挺好用了,然后还有


ggplot


这种非常优< /p>


美的得力工具。



python



matplotlib


< br>画出来效果感觉比


R


自带的好一些些,

< br>而且界面基于


QT


,跨平台支持。可能是


R


用得多了,


pyplot


用 起来还是不太顺手,觉得其各个组建的统一性不高。



IDE




R studio


非常不错,提供类


matlab

< br>环境。


(本人过去用


vim-r- plugin


,现在用


emacs + ess





windows


下有


python(x,y)


还有许 多商业的工具。


(本人现在



emac s


环境还不是很顺手


~




建议:



如果只是处理( 小)数据的,用


R


。结果更可靠,速度可以

接受,上手方便,多有现成的命令、程序可以用。



要自己 搞个算法、处理大数据、计算量大的,用


python


。开


发效率高,一切尽在掌握。



ps



盲目地用


R


的包比盲 目的地用


python


的包要更安全。




R


会把你指向一篇论文,而


python


只是指向一堆代码。


R


出问题了还有论文作者、审稿人陪葬。



题外话,个人经验:



我首先用


python


实现了一个统计方法,其中用到了


ctypes



multiprocess

< br>。之后一个项目要做方法比较,又用回


R


,发现


一些


bioconductor


上的包已经默认 用


parallel


了。


(但那个包< /p>


还是很慢,一下子把我所以线程都用掉了,导致整个电脑使


用不能 ,看网页非常卡


~


)后来用


pytho n pandas


做了一些数


据整理工作,类似数据库,两三个 表来回查、匹配。感觉还


是很方便的。虽然这些工作


R


也能做,但估计会慢点,毕竟


几十万行的条目了。


整理好之后开始尝试用


python matplotlib


画图。


pyplot


作图的方式和


R< /p>


差异很大,


R


是一条命令画点

< p>
东西,


pylot


是准备好了以后一起出来。


pyplot


的颜色选择有


点蛋疼,


默认颜色比较少,


之后可用


html


的颜色,


但是名字


太长了


~



pyplot



legend



R


好用多 了,


算是半自动化了。


pyplot


画 出来后可以自由拉升缩放,然后再保存为图片,这


点比


R


好用多了。



【知乎用户的回答


(41



)



:


的确,


如同


@


周则禹



在回答中说到的,

R


是统计学家的东西。



统计学家是一种什么生物呢?



“哈希表?二叉树?链表?这是啥,可以吃吗?”



“循环?递归?没学过,不会!



< /p>


所以,在


R


中没有我们在计算机课上学的 各种数据结构(至


少不安装扩展包就没有)


。如果你写的代码中 还用循环来处


理数据,而不是用


apply


aggregate


之类的函数,那么在


R


圈里会被人嘲笑。如果你的思维还是无法从计算机编程习惯

< br>中切换到


R


的话,那么还是用


P ython


吧。



也是由于上述问题,


R


完全没有考虑内存优化和算法加速之


类的问题(


R


中不会关心


sort


函数是用快排还是冒泡实现


的)


,所以数据 量一大,计算机的内存就被占光了。不过有


关内存和加速的问题已经有了许多的解决方案 ,例如用


ICC


编译


R


源代码链接


MKL


加速


R


数值计算,使用扩展包实现


内存映射硬盘,等等。这些对于一个经验 丰富的码农来说完


全不在话下。所以,决定使用


R


还是


Python


的关键,就是

你是否能够接受


R


的思想。




R


中,没有变量,只有数据!

< p>


没有循环,只有批处理!



没有计算机算法,只有数学模型!



如 果决定使用


R


,那么就必须将自己从数据结构,算法策略


这些知识中解脱出来。一个函数就是一个数学模型(回归、


假设检验、 方差估计)


,用统计和概率的思路去理解数据挖


掘和机器学习的 算法。使用


R


,能够将工作者从习惯的算法

中解脱出来,真正去思考模型本身的数学意义,在数学层面


去修改算法。忘记我们经 常思考的算法复杂度和内存消耗之


类的问题,推动机器学习和数据挖掘的关键动力,就是 数学


模型!



最后总结一下:



R

< br>能够用最短的代码实现一个新的统计模型和机器学习模型


(前提是对


R


和扩展库很熟悉)


,并且每一句代码都有对应


的数据和数学意义;因此


R


适用与建立新模 型,新算法,并


且对模型进行统计意义的评价。



Python


能够让程序员在尽量不受语言细节的干扰下,

< br>将一个


已经证明成熟和可靠的算法实现出来,并且投入工程应用,


开发出实用的决策系统。



对语言的选择其实也是程序员对自我的定位:


-


-


-


-


-


-


-


-



本文更新与2021-03-03 14:08,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700572.html

r 和 python (numpy scipy pandas) 用于统计学分析哪个更好? 知乎精选的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
r 和 python (numpy scipy pandas) 用于统计学分析哪个更好? 知乎精选随机文章