天天看点

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

<b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

随着大数据时代的到来,网络每天会产生大量的数据,一些行业会对这些数据进行分析并协助企业不断地发展新业务、创建运营模式等,比如电子商务、推荐系统等。那么谁对这些大数据进行分析呢?对应的工作领域是数据科学(data science),该领域需要结合先进的统计知识、定量分析能力和编程能力。涉及到编程,大家都会面临一个问题,有太多的编程语言可供选择,那么哪些编程语言适合数据科学领域呢?虽然没有正确答案,但想成为一名成功的数据科学家将考虑以下几点:

<b>特异</b><b>性</b><b></b>

当涉及到先进的数据科学时,你将不仅仅是老瓶装新酒了,需要学习掌握你所选择的编程语言提供的特定领域的各种软件包和模块。

<b>一般</b><b>性</b><b></b>

顶尖数据科学家将具有全面良好的编程技巧以及处理大量数据的能力。科学数据家的日常工作大多是围绕原始数据进行一些处理或数据清洗。

<b>效率</b><b></b>

<b>性能</b><b></b>

在某些情况下,优化代码的性能显得至关重要,尤其是在处理大量的关键任务数据时。编译语言通常比解释语言快得多;同样,静态类型语言比动态类型的故障要多得多。显而易见,权衡这些会下降生产力。在某种程度上,这被看作是一个双刃剑(一般性-特异性,性能-效率)。每一种语言都会面临这个问题。考虑到这些核心原则,让我们看一下数据科学中使用的一些较流行的编程语言。以下是结合自己的个人经验和研究,仅供参考!

<b>r</b>

<b>你</b><b>所</b><b>需要知道</b><b>的</b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

<b>许可证</b><b></b>

免费!

<b>赞成的</b><b>理由</b><b></b>

基础设施是非常全面的、内置一些统计功能和方法,处理矩阵代数效果好。

<b>反对的理由</b><b></b>

领域特殊性,r语言对于统计和数据科学是很好的,但不适合通用程序设计;

孤僻,r语言有一些不同于其他编程语言的特点,例如:索引从1开始等;

<b>裁决——</b><b> </b><b>“为它的设计而精彩”</b><b></b>

r语言是一个功能强大的语言,擅长各种统计和数据可视化的应用并开放源代码。

<b>python</b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

<b>你</b><b>所</b><b>需要知道</b><b>的</b><b></b>

python是一种易学的语言;

一些软件包如pandas、scikit-learn、tensorflow使得python成为机器学习应用的不二选择;

类型安全性:python是动态类型语言,类型错误是不可预料的;

对于具体的数据统计和分析的目的,有更快和更安全的通用语言替代python;

<b>裁决——“优秀的全才”</b><b></b>

<b>sql</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

不同—— 某些是免费的,其他是收费的!

在查询、更新和操纵数据库非常高效;

声明性语法使得sql语言非常易读,而且没有什么歧义;

sql具有非常广的应用范围,使其成为一个非常熟悉的有用语言;

<b>反对</b><b>的</b><b>理由</b>

sql的分析能力是相当有限的——除了汇总、计数和平均数据等操作外,你的选择是有限的;

对于来自命令式背景的程序员,对sql的声明性语法会呈现出一个学习遗忘曲线;

<b>裁决——“长期且高效”</b><b></b>

sql是有用的作为一个数据处理语言不是作为一种先进的分析工具。然而,大多数据科学过程依赖于etl,sql的长寿和效率证明了它对于现代数据科学家来说是一种非常有用的语言。

<b>java</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

第8版——免费!旧版本是收费的。

无处不在,许多现代的系统和应用程序都是建立在一个java后端;

强类型,java语言确保类型安全;

java是一种高性能、通用的汇编语言,这使得它适合于编写高效的etl生产代码和计算密集型机器学习算法;

对于特定的分析和更专门的统计程序而言,java的冗长使得它不太可能成为首选;

相比于特定领域语言如r语言,没有大量的可供java高级统计方法库;

<b>裁决——“数据科学的有力竞争者”</b><b></b>

如果将java作为第一选择的数据科学语言而言,你会发现java的高性能和类型安全的优势。然而,你没有考虑用于其他语言比如r或python范围的具体软件包。

<b>scala</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

scala与spark结合相当于高性能集群计算,对于使用高容量数据集的研究者来说,scala是一种理想的选择;

多范式:scala程序员可以两全其美,因为scala提供面向对象和函数式编程范式;

scala编译成java字节码并运行在jvm上,使得它成为一个非常强大的通用型语言;

scala的建立和运行需要依赖于一些特定的集成开发环境,比如eclipse、intellij;

语法和类型系统描述复杂。这使得那些学过动态语言如python学者来说较困难;

<b>裁决——“适合于大数据”</b><b></b>

当它涉及到使用集群计算处理大数据时,那么scala结合spark是极好的解决方案,然而,如果你的应用程序不处理数据,scala只会增加复杂度。

<b>julia</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

julia是一个jit(即时)编译语言,这让它提供了良好的性能,它还提供了像python这样的简单、动态类型和脚本功能;

julia专门设计用于数值分析,也能够进行通用编程;

可读性;

不成熟,作为一个新的语言,julia的用户者使用一些数据包时会不稳定,但核心语言本身稳定;

有限的软件包,小的社区发展;

<b>裁决——“明日之星”</b><b></b>

julia作为一种新兴的语言,它不像python和r语言那样成熟,如果你愿意耐心,可以关注它在未来几年的发展。

<b>matlab</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

专有——定价取决于你的使用情况

为数值计算而设计。matlab非常适合复杂的数学要求,如信号处理、傅里叶变换和图像处理等;

数据可视化,matlab有一些强大的内置绘图功能;

matlab经常作为工程数学与应用数学等本科课程的一部分,因此,matlab在这些领域得到广泛应用;

matlab不是通用编程的一个好选择;

<b>裁决——“最好用的数学密集型应用程序”</b><b></b>

matlab在工业界和学术界被广泛应用于定量和数值计算领域,使它成为数据科学一个重要选择。当你的应用程序或日常的应用需要密集、高级的数学功能时,matlab是你的不二选择。

<b>其他语言</b><b></b>

还有其他的主流语言,数据科学家对这些可能感兴趣,下面让我们快速的概述下!

<b>c</b><b>++</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:
“如果你写的代码做一些是为了特定的分析,可能只会运行这么一次,你愿意花30分钟写一个程序,运行10秒,或10分钟写一个程序,运行1分钟吗?”

这虽然有点道理,但是对于重要的生产级性能,c++是实现低级别优化的机器学习算法的极佳选择。

<b>裁决——“不适合日常工作,但适合性能关键时的应用”</b><b></b>

<b>javascript</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

起步得晚(node.js只有8岁!);

很少有一些相关的科学数据库和模块可用,这意味着没有真正主流的兴趣或动力;

node的强项是在异步i/o,广泛使用编译到javascript语言,可以想象下这对数据科学和实时etl处理结合是多么的方便,但关键问题是这是否会与已经存在的东西有所不同。

<b>裁决——“</b><b>在</b><b>javascript可以被视为一个</b><b>重要</b><b>的数据科学语言</b><b>前</b><b>还有许多工作要做</b><b>”</b>

<b>perl</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

<b>裁决——“</b><b>有用的通用脚本语言,但它没有为</b><b>你</b><b>的数据科学的简历提供真正的优势</b><b>”</b>

<b>ruby</b><b></b>

一份语言选择指南带你玩数据科学,选出你心中支持的语言文章原标题《Which Languages Should You Learn For Data Science?》,作者:Peter Glesson,译者:海棠,审阅:

<b>裁决——“</b><b>对于数据科学</b><b>而言,目前不是显而易见的</b><b>选择,但</b><b>这</b><b>不会伤害</b><b>你</b><b>的简历</b><b>”</b>

<b>结论</b><b></b>

通过以上内容,现在你有了一个关于考虑数据科学的语言的指南。关键是要从一般性和特异性理解你的使用需求,以及个人针对性能和生产力而言谁优先的开发风格。

针对以上的内容,或许你有一个完全不同的建议,如果是这样的话,请在下面留言 回复,我期待听到你的回音。

感谢你的阅读!

<b>作者信息</b>

peter glesson:数据科学、统计和编程方面的作家