为什么 Python 发展如此的快?它有许多的用途,从 Web 开发到数据科学,再到 DevOps,并且你要知道,现在有越来越多的运用是运用 Python 开发的。我是一个用数据科学家,所以我天然很想知道,在我这个领域,Python 现已添加到了什么程度。还有哪些公司和组织最喜欢用 Python。
我们分析得出了以下两个定论。首要,快速添加的 Python 首要是因为数据科学、机器学习以及学术研讨。这一点可以从 pandas 软件包的添加上看出,pandas 现已成为添加最快的与 Python 相关的标签了。至于哪些工作在运用Python,我们发现如下工作对其最为注重,比如电子、制造业、软件、政务,尤其是高校。但是,Python 在各个工作的添加几乎是差不多的。这也刚好阐清楚,数据科学和机器学习关于各行各业来说,变得越来越常见,并且 Python 在这两个领域现已成为了最为遍及的挑选。
与之前一样,本文的分析也只针对世界银行所发布的高收入国家进行。
Python可以做哪些作业?
Python 是一个用途广泛的言语,比如说web开发和数据科学。我们是怎样理清Python在这些领域的添加的呢?
每个领域都有一些比较出名的库,我们可以研讨一下这些库所对应标签的访问量。我们可以比较 web 开发结构 Django 和 Flask 以及数据科学领域的 NumPy,matplotlib 和 pandas (你可以运用 Stack Overflow Trends 来比较某个问题被问到的比率,而不是只是是访问量)
关于来自高收入国家的访问量,padnas 是添加最快的Python软件包:它于2011年问世,而现在,Stack Overflow 中有 1% 的问题都是关于它的。关于 numpy 和 matplotlib 的问题也在不断添加。与之相对的是,与 Django 相关问题的添加比较峻峭,Flask 尽管有所添加,但照旧比较小众。这标明,大大都 Python 问题的的添加首要还得归功于数据科学,而不是 Web 开发。
但是,这只是一方面,因为它只能测量常用的 Python 库。Python 在系统管理员和 DevOps 工程师中也非常的盛行,他们会一同访问Linux,Bash 和 Docker 等领域的问题。相同,许多 Python web 运用并不是依据 Django 或许 Flask 的,这些开发者很可能去访问 JavaScript、HTML 和 CSS ,而我们不能简略的核算 Linux、bash、javascript 这些标签的添加并且假定它们和Python相关。因此,我们想要核算一下,与 Python 标签一同访问的标签有哪些。
我们仅考虑今夏(2017年 6-8 月期间)的访问量,这样做可以减小学生们带来的流量影响,专心于最近的流量数据,一同还可以减少核算量。此外,我们仅考虑注册用户,且该用户在这段时间内应该至少访问过50个问题。我们依据两点判别一个用户是Python运用者:榜首,他最多访问的标签是Python,第二,Python问题在他阅览的一切问题中,占比至少要到达20%。
阅览Python标签的人,一般还会阅览什么标签呢?
关于一个 Python 开发者来说,访问最多的标签是 Pandas(优势非常明显),这点我们丝毫不感到意外。访问量第二多的标签是JavaScript,这些流量代表了运用 Python 做 Web 开发的程序员。这证清楚我们的猜想:我们应该考虑的是与Python标签一同访问的那些标签,而不只是是与 Python 相关的标签的添加(这两者是有差异的)。
我们还能看到其他的一些“技术簇”(“clusters” of technologies)。这些聚在一同的标签,体现出了必定的相关性,借此我们可以剖分出它们之间的联络:比如说Python程序员是不是更加倾向于访问某些特定的标签。通过过滤出一组具有较高的皮尔森相联络数( Pearson correlation)的标签,我们可以在图表中看到三组联络:
我们可以看到一些较大的“技术簇”,它标清楚Python可以处理的一类问题。在图片的中上部分我们可以看到有关数据科学和机器学习相关的内容:有pandas,NumPy和Matplotlib,并且你可以发现它们和R言语,Keras以及TensorFlow息息相关。它下面的一个“技术簇”体现了有关web开发领域的一些联络,这里有JavaScript, HTML, CSS, Django, Flask 和 JQuery。其他还有两个“技术簇”,左面是与系统管理/DevOps相关的(以linux和bash为中心),右边是与数据工程相关的(包括Spark, Hadoop, 和 Scala)
论题的添加
我们发现,Python相关的访问流量可以被归纳为一些特定的论题。这使得我们可以得悉,Python访问量的添加,与哪些论题息息相关。
梦想一下,我们正在研讨一个用户的历史纪录并发现Python是他最常访问的标签。我们怎样才干进一步判别出这个用户的细分特色呢?是web开发者?数据科学家?系统管理员?仍是其他人物?为了达到这一政策,我们还需要去研讨他访问量第二多的标签,第三多的标签,以此类推。沿着这条路走下去,毕竟我们会在上述“技术簇”模型中,找到归于这位程序员的方位。
因此,我们提出了一种简略的办法,通过对以下九个标签的访问核算 ,我们将某个用户归类到某个论题中。
数据科学:Pandas, NumPy 或 Matplotlib
Web 开发者:JavaScript, Django, HTML
系统管理员/DevOps:Linux, Bash 或 Windows.
无法归类:上述 9 个标签的访问量,没有任何一个可以占有该用户5%以上的流量。
尽管并不是特别精确,但是该办法可以让我们快速的估量出每个领域对Python添加的影响力。我们也检验运用了更加慎重的核算手法,比如说潜在狄利克雷散布(Latent Dirichlet Allocation),得到的结果是类似的。
上述哪种类其他Python开发者越来越常见了呢?
考虑到我们现在首要研讨的是用户而不是问题,我们首要为您展现Stack Overflow全体注册用户访问上述论题的比例改动趋势(不论其是否访问了Python论题)
我们可以看到,Web开发和系统管理员这两大类在以前的三年中添加峻峭,但是Python程序员访问数据科学相关技术的占比却飞速添加。这就说明,Python的盛行首要仍是由数据科学以及机器学习驱动的。
通过核算Python程序员在2016和2017两年中访问某个标签点流量,我们还可以研讨一下每个独自标签的添加水平。比如说,可能呈现的情况是:Javascript标签的流量全体平稳,但若仅考虑Python程序员对此标签的访问,Javascript标签的访问占比可能会下降。当我们核算出每个标签的添加速率后,我们可以在网络图表中展现出某个论题的添加或萎缩。
这些作业有利于证明我们的猜想:Python的添加首要和数据科学以及机器学习相关,图表中大大都的技术簇都在向橙色演化,这说明这些标签开端成为Python生态系统的主角了。
来自工业界的数据
了解Python的添加还有一个途径,那就是查询一下访问它的流量都来自哪些类型的公司。
我们仅注重Python添加速度最为明显的两个国家:美国和英国。在这俩国家中,我们可以将流量按照工作归类(就像我们比照AWS和Azure一样)
访问Python最多的是学术界(优势明显),包括各类科研院校。是因为为本科生开了Python课么?
可能有这方面的原因,但绝不是全部的原因。比如,Python和Java是高校最常访问的标签,我们可以看出两者的季节性改动是不同的。
我们可以看到,Java在夏天访问量下降的非常多,因为Java是最常见的本科课程。与之相对的是,Python在夏天流量的占比非常高。来自高校的Python的高访问量首要是来自科研人员,他们整年都在作业。这也为我们的猜想供给了更多的依据,Python的添加首要是因为它强壮的科学核算才干和数据分析才干。
至于其他工作,我们发现Python在政府部门非常盛行,添加敏捷。一同,Python在电子和制造业也被广泛运用。我对这些工作不太了解,很想了解它们是怎样运用Python的。在零售业和保险业,Python还不是干流,一些研讨标明,Java在这些工作仍然占有操控方位。
本文首要研讨的是Python的添加。那么,Python在某个工作的添加速度,是否明显高于其他工作呢?
以前一年里,Python在各工作的添加几乎是差不多的,至少在英美两国是这样。各个工作访问Python的流量添加了2-3个百分点(关于本来运用Python不多的工作,这样的添加是非常明显的,比如之前提到的保险和零售业)
在大部分工作中,Java仍然是最多访问的标签(2017年截止到现在的最新数据),但是Python前进明显。比如,在金融领域(该领域是SO站点访问量占比较大的工作之一),Python的访问量从2016年排名第四升至2017年的排名第二。