为何Python攀上数据科学巅峰?调查显示Python超越R

简介:

根据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%)。

为何Python攀上数据科学巅峰?调查显示Python超越R

图 1. 2016 年与 2017 年在数据分析、数据科学和机器学习上,Python、R、两者共同使用,以及其他平台的人数对比。

下面,让我们看看不同平台之间的转换。

为何Python攀上数据科学巅峰?调查显示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 年的数据按照如下公式进行了转换

  • Python=(Python 比例)+50%(同时使用 Python 和 R)
  • R=(R 比例)+50%(同时使用 Python 和 R)

我们可以看到,R 的使用份额正在逐渐下降(从 2015 年的 50% 降低到了 2017 年的 36%),而 Python 的比例则呈逐年上升趋势——从 2014 年的 23% 增加到了 2017 年的 47%。同时,其他平台的使用量在逐渐减少。

为何Python攀上数据科学巅峰?调查显示Python超越R

最后,让我们看看这次调查的参与者地区分布:

  • 美国/加拿大:40%
  • 欧洲:35%
  • 亚洲:12.5%
  • 拉丁美洲:6.2%
  • 非洲/中东:3.6%
  • 澳大利亚/新西兰:3.1%

为了简化图表,在下图中,同时使用两种语言与使用其他语言的比例被合并。

为何Python攀上数据科学巅峰?调查显示Python超越R

图 4:分区域对比 Python、R 、其他,2016 对比 2017

我们在所有地区都发现了同样的模式:

  • Python 的比重增加了 8%-10%;
  • R 的比重下降了 2%-4%;
  • 其他平台的比重下降了 5%-7%。

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 的未来有着光明的前景。


作者:佚名

来源:51CTO

相关文章
|
9天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
20天前
|
机器学习/深度学习 数据采集 算法
深入调查研究Scikit-learn
【11月更文挑战第11天】
43 1
|
2月前
|
机器学习/深度学习 数据可视化 数据处理
从基础到进阶:探索Python在数据科学中的应用
【10月更文挑战第18天】从基础到进阶:探索Python在数据科学中的应用
43 1
|
7天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
20天前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
35 3
|
22天前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
27天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
23天前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
28天前
|
机器学习/深度学习 数据可视化 数据处理
Python数据科学:从基础到实战
Python数据科学:从基础到实战
30 1
|
1月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
27 1