选自KDnuggets等
机器之心整理
参与:李泽南、李亚洲、路旭阳
根据 KDnuggets 2017 年最新调查,Python 生态系统已经超过了 R,成为了数据分析、数据科学与机器学习的第一大语言。本文对 KDnuggets 的此项调查结果做了介绍,并补充了一篇文章讲解为何 Python 能成为数据科学领域最受欢迎的语言。
Python vs R:2017 年调查结果
近日,KDnuggets 发起了一项调查,问题是:
你在 2016 年到现在是否使用过 R 语言、Python(以及它们的封装包),或是其他用于数据分析、数据科学与机器学习的工具?
预料之内的是,Python 并没有完全「吞噬」R 语言的空间,但这项基于 954 个参与者的投票显示,Python 生态系统在今年已经超越了 R 语言,成为了数据分析、数据科学和机器学习的第一大语言。
值得一提的是,在 2016 年的调查中,Python 还处于落后地位(34% 比 42%),在 2017 年,两者的对比是 41% 比 36%。
此外,参与这项调查的 KDnuggets 读者也有倾向于共同使用 Python 和 R 两种语言的趋势(12%),而使用其他工具的人则有所减少(从 16% 降至 11%)。
图 1. 2016 年与 2017 年在数据分析、数据科学和机器学习上,Python、R、两者共同使用,以及其他平台的人数对比。
下面,让我们看看不同平台之间的转换。
图 2. 2016 年与 2017 年间,数据分析、数据科学和机器学习上,Python、R、两者共同使用,以及其他平台的人数转换示意。
这张图看起来有点复杂,其中有两个主要方面都是 Python 获得胜利。
忠诚度:Python 的用户显得更加忠诚,有 91% 的 2016 年 Python 用户仍然在使用这个语言,而 R 语言的忠诚度为 74%,其他平台为 60%。
转换趋势:只有 5% 的 Python 用户转投 R 语言,反向转换的比例则是 10%。而对于在 2016 年使用两种语言的用户而言,只有 49% 的人仍在使用双平台,38% 现在只用 Python,而 11% 转移到了 R 语言上。
在 KDnuggets 2015 年的调查中,并没有提出「同时使用 Python 和 R 语言」的选项,所以下图的趋势线中,2016 年和 2017 年的数据按照如下公式进行了转换
我们可以看到,R 的使用份额正在逐渐下降(从 2015 年的 50% 降低到了 2017 年的 36%),而 Python 的比例则呈逐年上升趋势——从 2014 年的 23% 增加到了 2017 年的 47%。同时,其他平台的使用量在逐渐减少。
最后,让我们看看这次调查的参与者地区分布:
为了简化图表,在下图中,同时使用两种语言与使用其他语言的比例被合并。
图 4:分区域对比 Python、R 、其他,2016 对比 2017
我们在所有地区都发现了同样的模式:
Python 用户的未来看起来一片光明,但我们预期 R 和其他平台在未来会保持住一定比重,因为它们巨大的嵌入式基础。
Python 是如何上升到数据科学顶峰的
可以肯定地说,Python 是一个十分受欢迎的工具,它涵盖了各个行业的各种职业。由于它亲近性的语言、丰富的资源和框架以及它庞大硬件开发族群,Python 自然是开发人员们的首选工具。Packt 在 2017 年的技能调查显示,在不同职位的技术专业人员中,Python 从 2016 年的第二名上升成为用户最多的工具。我们向 Sebastian Raschka 提问:为什么不论是应用机器学习还是深度学习的研究者,亦或是 Packt 的畅销书 Python 机器学习的作者都转向了 Python 学习?这个语言的下一步将会是什么?他不得不承认:Python 已成为近二十年来最流行的语言。
艰难登顶:PYTHON 是如何成为数据科学通用语言的?
Python 是有史以来最流行的编程语言之一,这一点是毫无疑问的。但是最初发生的事情确实很难描述的,是语言本身还是对编程语言的爱。是否是我们首先为科学计算、数据科学以及机器学习开发出优秀的开源的数据库才推动了大家选择 Python 作为他们的工具,或是因为越来越多的人在使用 Python 我们才把这些开发出来。
无论哪一种是对的,有一件事是足够显而易见的:Python 是一种非常通用的语言,易于学习和使用。在我看来,这是今天它被如此普遍使用的原因。虽然科学计算的大多数算法都没有在纯 Python 中实现,Python 仍然是用于与 Fortran,C / C ++和其他语言中的非常有效的实现交互的优秀语言。
所谓的从计算高效的低级语言调用代码,以及 Python 为用户提供一个非常自然和直观的编程接口的这一事实可能是 Python 作为通用语言普及的重要原因之一,特别是在数据科学和机器学习社区中体现的更为明显。
未来的框架:我们应该关注什么工具、框架和数据库
Python 开发了许多有趣的库。作为一名数据科学家或机器学习从业者,我时常从 Python 核心科学堆栈中重点关注维护良好的工具。例如,NumPy 和 SciPy 是就是用于处理数据数组和科学计算的高效库。
当涉及严重的数据清洗时,我们可以使用多功能的 Pandas 包。Pandas 是一个开源库,可以为 Python 编程语言提供快速简化的数据处理和数据分析工具,它主要是为 Python 提供现实和高端的数据分析。我还建议使用 Matplotlib 进行数据可视化,Seaborn 还可以提供更多的绘图功能和更专门的绘图。此外 Scikit 学习是一个很好的通用机器学习工具,它为数据挖掘和分析提供了有效的工具。这可能是我最喜欢的一款了,因为它几乎可以为所有的基本机器学习算法和许多有用的数据处理工具提供一个非常好用的 API。
当然,我在自己的项目中发现了很多有用的库。当我需要额外的性能时,我首选的数据框架库是 Dask。Dask 是一个非常适合处理大型、难以装入内存的数据框架的库,它还能在多个处理器中进行并行计算。或者使用 TensorFlow、Keras 和 PyTorch,所有这些都非常适合实现深度学习模型。使用什么库取决于你的个人偏好和项目需求,但是一直以来都有很多方便有趣、使用 Python 开发的框架,关键是找到适合你自己的。
Python 的未来是什么样的?
在大多数人的眼里,Python 的未来非常光明。这个语言刚刚被 IEEE Spectrum 列为第一大编程语言。而 Packt 最近的调查也显示它是最近一段时期内科技界最为流行的工具。尽管在这里,我们主要从数据科学和机器学习的角度谈论 Python,但我们也会经常听说其他领域的人们也认为 Python 是一种功能丰富的语言,拥有大量的库和完整的生态系统。Python 或许不是所有问题的最佳工具,但对于想要「完成任务」的程序员来说,它被认为是一种「有效」的语言。
此外,虽然拥有大量库是 Python 的优势之一,但它的大多数开发包目前都得到了很好的维护——那些数据科学和机器学习库每天都有新特性与提升。例如 2006 年发起的 NumPy 项目,作为 Python 数据科学的核心库,最近它刚刚接受了价值 64.5 万美元的资助。
Python 及其相关库在我们的工作中扮演了重要角色,我非常感谢所有这些工具背后的开发者,没有这些开源库,Python 就没有今天。对于我们来说,Python 可以成为非常重要的工具,我希望它的用户们能够多考虑帮助开源社区的发展,不论文档修改、bug 修复还是新代码、新特性或新库,所有贡献都将帮助整个社区向前发展。因为这个富有活力的社区,Python 的未来有着光明的前景。
整理自:
受够了碎片信息和大众搜索?来试试机器之心新上线的「AI 商用垂直搜索」。点击「阅读原文」,立即试用。