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是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Java语言等,Python是他们其中的一种。
首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。
比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
所以Python是一种相当高级的语言。
学习Python难吗?
是不是越低级的程序越难学,越高级的程序越简单?
表面上来说,是的。
但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。
但是,对于初学者和完成普通任务,Python语言是非常简单易用的。
用Python可以做什么?
可以做日常任务,比如自动备份你的MP3;
可以做网站,很多著名的网站像知乎、YouTube就是Python写的;
可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。
总之就是能干很多很多事啦!
Python当然也有不能干的事情,
比如写操作系统,这个只能用C语言写;
写手机应用,只能用Objective-C(针对iPhone)和Java(针对Android);
写3D游戏,最好用C或C++。
许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。
很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
如果我是小白,我满足什么条件可以学Python呢?
――会使用电脑,但从来没写过程序;
――还记得初中数学学的方程式和一点点代数知识;
――想从编程小白变成专业的软件架构师;
怎样才能在python界占有一席之地呢?
除了上述的三条,还要有:
――4个月早上9:00到晚上10:30全力以赴不间断学习的毅力
――不骄不躁不退缩不认输的决心
如果我是小白,学Python要准备什么呢?
学习Python必不可少的一部肯定是工具,一种是编码器,一种是解释器:
编码器就是Python。目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的,因为现在Python正在朝着3.x版本进化,在进化过程中,大量的针对2.x版本的代码要修改后才能运行,所以,目前有许多第三方库还暂时无法在3.x上使用。
IDE工具。IDE集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。
常见使用的工具是:
Pycharm: PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。
IDLE: Idle 是一个纯Python 下使用 Tkinter 编写的相当基本的 IDE。
Ipython: ipython 是一个python 的交互式 shell,比默认的pythonshell 好用得多。
学Python后到底能干什么?
运维、web开发、应用开发、大数据、数据挖掘、科学计算、机器学习、人工智能、自然语言处理……还可以写很长很长……
智游Python,你值得拥有!