为什么数据科学家们选择了Python语言?
本文由 伯乐在线 - HanSir 翻译,toolate 校稿
英文出处:Quora
【伯乐在线导读】:这个问题来自 Quora,题主还补充说,“似乎很多搞数据的程序员都挺擅长 Python 的,这是为什么呢?”下面是 Jeff Hammerbacher 的回复。(693 赞)
Python是一种解释型、动态语言,具有明确而高效的语法。Python具有良好的REPL(Read-Eval-Print Loop ,‘读取-求值-输出’循环),还可以通过dir()和文档字符串从REPL中开发新模块。这是程序员更偏向于Python而不是C、C++或Java的一个原因。
Python社区于90年代中期投入精力开发了Numeric,它是“Python的一个扩展,以使其像Matlab那样自然地支持数值分析”[1]。Numeric后来演变成为NumPy[2]。几年后,Matlab的绘图功能通过matplotlib库被移植到Python中[3]。科学计算的库围绕NumPy和matplotlib建立,并打包成SciPy包[4],这在商业上由Enthought支持[5]。Python在类Matlab的数组操作和绘图功能上的支持,是它比Perl和Ruby更受到青睐的主要原因。
如今,对数据科学家来说,Python最流行的替代品是R、Matlab/Octave和Mathematica/Sage。除了前面提到的把Matlab的特性移植到Python的工作外,近期的工作已经把一些R和Mathematica中流行的特性移植到了Python。
R语言中的数据框和相关操作(来自plyr和reshape包)已经由pandas库实现[6]。scikit-learn项目[7]呈现了许多机器学习算法的通用接口,类似于R中的caret包。
Mathematica/Sage中“notebook”的概念已经由IPython notebooks实现[8]。
以我个人的观点,Python仍然在一些重要领域有所欠缺。
1. 首先是Python在数组操作和公式设定上的语法相对更加繁琐。Matlab/Octave在数组操作上的语法仍更受青睐(例如,这是它被斯坦福大学机器学习课程所采用的原因),而R语言在公式设定上的语法相当不错。
2. 再者就是静态图形库ggplot2与交互式图形库D3的对应Python库。matplotlib库既不易安装,又难以使用,还不容易建立用于web的交互式图形。
3. 第三就是NumPy和pandas库在处理大数据集时的可扩展性。Continuum公司正致力于解决这个问题,但距离创造出一些连贯又可用的东西还有很长的路要走。
4. 第四是缺乏一个类似于LINQ项目的、用于数据操作的嵌入式、声明式语言。Pandas作为一个低层次的数据操作工具箱来说很有用,但是跟踪复杂操作的专用Pandas语法会令人沮丧。
5. 最后是对数据科学家来说缺乏一个像R Studio一样高品质的IDE。
参考资料:
[1] http://hugunin.net/story_of_jyth…
[2] http://numpy.scipy.org/
[3] http://matplotlib.sourceforge.net/
[4] http://www.scipy.org/
[5] http://www.enthought.com/
[6] http://pandas.pydata.org
[7] http://scikit-learn.org
[8] http://blog.fperez.org/2012/01/i…
[9] http://continuum.io/
写于2012年8月29日。
关于作者: HanSir
为什么数据科学家们选择了Python语言?的更多相关文章
- 关于Python你不得不知道的Python语言特点
首先什么是语言?什么是编程? 准确来说是:定义计算机程序的语言,用来向计算机发送指令 个人理解: 语言:是一种交流的工具或者方式.比如我们的汉语普通话.各地的方言.外语中的英语.俄语.日语等.我们 ...
- mooc-python语言语法week3-6
week3 1.类型的概念:程序编程不允许有歧义的数据类型存在,所以对数据进行了划分,python语言类型分为,数字类型.字符串类型.元组类型.列表类型.文件类型.字典类型. i:数字类型: pyth ...
- 一文总结数据科学家常用的Python库(下)
用于建模的Python库 我们已经到达了本文最受期待的部分 - 构建模型!这就是我们大多数人首先进入数据科学领域的原因,不是吗? 让我们通过这三个Python库探索模型构建. Scikit-learn ...
- 一文总结数据科学家常用的Python库(上)
概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库 ...
- 总结数据科学家常用的Python库
概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库 ...
- 基于python语言的经典排序法(冒泡法和选择排序法)
前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 ...
- Web 开发和数据科学家仍是 Python 开发的两大主力
由于 Python 2 即将退役,使用 Python 3 的开发者大约为 90%,Python 2 的使用量正在迅速减少.而去年仍有 1/4 的人使用 Python 2. Web 开发和数据科学家仍是 ...
- 人工智能为什么选择Python语言?
作为新手,在面对广泛应用于企业级应用开发的 Java.游戏客户端开发的 C++.嵌入式开发的 C.人工智能领域的 Python 等数百种编程语言时,你会如何选择自己的第一门编程语言? 作者 | JAC ...
- SparkR:数据科学家的新利器
摘要:R是数据科学家中最流行的编程语言和环境之一,在Spark中加入对R的支持是社区中较受关注的话题.作为增强Spark对数据科学家群体吸引力的最新举措,最近发布的Spark 1.4版本在现有的Sca ...
随机推荐
- 如何停止Android Monkey脚本
如何停止Android Monkey脚本 最近用monkey来包apk的性能测试,发现一旦monkey跑起来以后,即使将数据线和PC断开,monkey脚本还是会继续运行下去.结果找到了一个办法去停止它 ...
- js控制div是否显示
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 原创:无错版!让DEDE只生成一个RSS文件,不分栏目
DEDE为每一个栏目都独立创建一个rss文件, 如果用户要整站订阅相当不方便. 所以需要修改让dede只生成一个rss. 网上大部分帖子要么是抄, 要么是有问题少了步骤. 今天特意整理下. 分享.. ...
- PHP实现站点pv,uv统计(二)
数据采集脚本如下: error_reporting(0);date_default_timezone_set("PRC");$environment = get_cfg_var(' ...
- 【英语】Bingo口语笔记(59) - 穿着的表达
- Oracle RAC 负载均衡测试(结合服务器端与客户端)
Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上.有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remot ...
- JBPM4入门——5.流程定义的发布、查询、删除
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...
- Bootstrap初级用户谈谈网页在手机上的显示效果优化
本人之前已经使用Bootstrap有一段时间了,但是之前做出的网站都只是在电脑端使用,没有注意过手机端的显示效果.这两天自己使用Bootstrap做了一个简单的Web个人日志系统,想在手机端也使用,桌 ...
- android学习视频(实战项目演练)
1.基于Android平台实战无线点餐系统(客户端(Client)和服务端(Server))①http://kuai.xunlei.com/d/xmBrDwI8CAAyXVFRa3d②http://k ...
- Android配置时,点击eclipse里Window->Preferences里的android选项出错
An error has occurred when creating this preference page. 解决方法:重起eclipse