如何评价python知乎_Python 有那么神吗?

用 R 和 Python 都做过一点微小的工作:某一个学期所有实验数据的处理工作完全用 R 做,某一个学期是完全用 Python 做的。和你一样,当年也是看 ggplot2 画图觉得特别神就入了 R 的大坑。

首先,两种语言都能做胶水语言的工作没有疑问。

但如你描述的那样,Python 事实上应用范围更为广泛,而 R 语言一定程度上被局限在了数据处理、数据分析、数据挖掘领域。我认为可能有下列原因:

首先,R 作为一个想要继承 S 语言的遗产的语言,它一定程度上应该也继承了 S 的语法(不过我确实不了解 S 语言),这就导致它的许多表示对于熟悉了 C/C++/Java 这一系统语言的程序员感到许多不适。比如:赋值符号会是「<-」(虽然通常来说用「=」);而原本应该是属性访问的「.」居然可以作为变量名的一部分,类似的功能要用「$」完成(比如 Python 中的 data["salary"] 或 data.salary 到了 R 里面会是 data$salary),还有比如数组用「c()」表示。虽然这并不是语言设计的问题,但我确实很不喜欢这种不适感。

语法设计方面上,还有一个因素就是各种函数名缩写的一致性上。 R 嘛,可能也是有历史包袱的原因,非常的混乱,总是给人像 MATLAB 那样各种夸张、毫无限制的感觉。比如有的就是把单词的几个辅音拿来缩写,把几个单词首字母拿来缩写(比如 nnls 这样缩写 non-negative least squares),这样无论从可读性上、函数名的猜测上基本上非常难(可能是科研人员偷懒的通病,误)。这方面 Python 作为一个给有洁癖的人设计的语言(误),就会好很多。

另外也要看轮子的状况。Python 有那个 pip(Python Package Index)等几个仓库,R 语言有它那个可怕的 CRAN(The Comprehensive R Archive Network)(明显 CRAN 这个名字起得更吓人一些,而且另外能自称 Comprehensive Archive Network 的 只有 Perl 的 CPAN 和 TeX 的 CTAN 了,都是什么怪兽的量级的东西了),但轮子的方向其实很明显,Python 的轮子的方向更为多样,而 R 语言的轮子会更多得围绕数据统计分析方面。

然后从数据模型本身而言,Python 会是有「list」、「dict」这一类,传统意义上的编程模型,受经典编程训练的人就会用着比较爽吧,而响应的, R 里面可能会强调「dataframe」数据帧这些(或者有时候是「datatable」,这个记不清了),给统计人员用起来更舒服吧。

互联网疯狂发展的这十年来年,Python 在几家互联网公司的主推之下不可谓不是大红大紫如日中天。不过这几年来 R 乘着数据挖掘的东风,总给人一种东山再起的感觉。君不见微软在这几年开发者大会上也有提到 R 方面的东西。

个人感觉 R 给人的感觉和 Perl 更像一点,做某些事情非常好,但是以牺牲一部分东西作为代价的前者主推统计领域,后者更具备泛用性。而 Python 是仔细权衡了这种代价而清理过的 Perl 的。

R 加上 ggplot2 以及其他绘图包能做的事情大多 Python 或者搭配上 numpy、scipy、matplotlib 也能做,但做的风格如何,优不优雅的话就不好说了。个人更喜欢 Python 因为自己整体上更熟悉。所以具体怎么选看题主更喜欢哪种风格了(当然是都学!)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值