Python培训
400-996-5531
一项鲜为人知的特性让Python成为当下发展最快的语言。
最近的 StackOverflow 流行趋势报告显示, Python 是当前广泛使用的编程语言中发展速度最快的一个,而且过去的几年中它一直处于加速进化的状态。尽管报告内容不能保证绝对的真实性,但不可否认的是,Python使用者数量在过去的五年内经历了爆发式增长。这对Python老用户和铁杆粉们来讲绝对绝对是一个利好消息,同时这种增长背后的推动因素也着实让人好奇——一项鲜为人知特性驱动着Python的快速发展。
大数据与程序员
随着大数据时代的到来,很多行业都面临着一个尴尬问题:花费巨额资金在大数据基础架构上,却只获取到很少的投资回报。在尽全力去处理指数级暴涨数据的夺命狂奔中,大多数公司对如何使用他们所搜集到的数据并没有一个清晰的计划。大家曾经认为只要将海量的数据保存起来,分析工作就会变得很容易,洞察商业先机会是分分秒秒的事情。现在听起来这是很 NAÏVE的想法,不过仍有不少人认为数据一旦获取到,其中蕴含的复杂模式就会自然显现。
事实并非如此。
整个产业界几乎同时意识到, 他们想获取的洞见和希望找到的答案需要依靠严谨的数学分析与论证。会使用SQL就可以发现一些最明显的模式和变化趋势,但发现数据中有更大价值的内容却需要一棵完全不同的技能树来支撑。这种技能树扎根于统计学与应用数学,学界之外很少有人具备足够的背景知识,同时要处理海量数据,只有数学背景是不够的,从业者还要写得一手好代码。
紧接着,“数据科学家”这个头衔就迅速出现在各大招聘网站与很多人的简历之上。从出现到给这个职业头衔以准确定义经历了若干年的时间,现在用大白话来讲,数据科学家指代一位在统计分析和编程能力方面都很棒的人。
Ruby vs. Python On The Web
宝石大战巨蟒
倒回到从前,在大数据还未兴起的时候,你会听到大家热议Ruby和Python哪个会成为互联网标配语言。二者都为编写网络应用提供了很好的支持,Ruby的流行很大程度上得益于Rails框架。如果你把大部分的Ruby程序员直接细分为Rails程序员没人会提出异议。而Python已经扎根于学术界和一些产业界应用中。与Rails最接近的Python框架是Django,它的发布时间早于Rails但流行度却没有后者那么高。
很多人觉得表达能力和易用程度都很高的语言会最终赢得这场“战争”。但他们忽视了一个问题:Ruby的流行与Rails框架密不可分,Django只是整个Python生态系统中的一小块。Ruby需要Rails框架来保持其流行度,在这一点上它很成功。但实际上,这场“战争”的结果远没有人们当初所想的那样重要。
Oliphant 登场
为了了解其中原因,让我们回到 2006 年,Travis Oliphant (迄今为止最成功的商用数据科学平台Anaconda(Continuum Analytics公司)的联合创始人)还在杨百翰大学任职期间,他在一年前在科学计算框架-Numeric的基础上开始了NumPy项目,在之后他还会参与发起Scipy项目并加入PSF的指导委员会,不过当时最重要的是,于2006年,他和Carl Banks共同递交了PEP 3118(Python EnhancementProposal第3118号)文档,提议更新Python的 "BufferProtocol"(缓冲协议)。
Buffer Protocol:Python快速发展的秘密所在
Buffer protocol 是非常贴近底层的API,为外部工具库操纵内存缓冲数据提供了统一的接口。我们这里所说的缓冲是指解释器在连续内存段内创建并存储数据的特定结构(以数组这种长度已知且占用内存空间确定的类型为主) 。
提供这种API的初衷是为了防止仅在读取和声明缓冲权限时进行不必要的复制操作,同时方便将数据存储在连续内存空间以提升读取速度。使用这种API的库一般使用C语言进行实现,对性能有很高的要求。更新后的协议支持下,使用Numpy创建的整形数组可以直接由其他工具库访问,而免除了消耗时间和计算资源、间接且易错的数据拷贝环节。
现在到了问题的最终环节: 谁会需要这种快速、免拷贝即刻访问大量数据的操作方式?
答案当然是-数据科学家们.
历史回顾
现在,让我们回顾整个故事的时间线:
Oliphant 和 Banks 对Python的缓冲协议进行了修订,基于Numpy项目,让多工具库通过直接访问数据所在内存区域进行交互成为可能。
PEP 3118 被提交、采纳并实现。
得益于PEP 3118的诸多优点, Python成为数据科学的必选语言,用C编写的拓展库支持高效的数据共享与操作。
Python和Ruby在网络应用领域开战,两边阵营都希望对方狗带。
随着存储设备价格的下降,保存大量数据供日后分析使用成为可能。(即使还不清楚要存起来做怎样的分析工作,大多数公司都开始存储这些数据)
一种新兴职业出现: 从业者需要有很强的统计学与应用数学背景同时也具备相应的编程经验。
数据科学家, 开始找寻具备强大表达能力且在数据处理任务上速度足够快的编程语言,Python受欢迎程度不断提高。
Stack Overflow的David Robinson在 "Why Python"中详细说明了数据科学的流行是推动Python广泛使用的主要原因。
作者Jeff撰写这篇文章来解释为什么Python在过去的五年经历了爆发式的增长,也解开了从参与到Arrow and Parquet项目后就一直存有的疑惑。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved