python讲得比较好的老师_连哈佛的老师都推荐使用python 到底是为什么

Python凭借其简洁、易用及强大的生态系统,在Web开发、科学计算及深度学习领域实现了三次关键性的突破。从配合系统工作的脚本语言,到受Google青睐进行Web开发,再到科学计算和深度学习的重要工具,Python逐渐成为最受关注的编程语言之一。
摘要由CSDN通过智能技术生成

Python的确挺神的~但不是生来就那么神。

Python是在1991年被创造出来的,但真正开始被广泛使用是Python 2.6以后的事情了。从2012年开始到现在,Python的热度持续累积,成为关注度增长最快的语言。

有图有真相:Python如此快的增长,说明了它确实十分神奇

所以说,Python并没有像Golang等语言那么幸运,生来就备受关注;而是因为语言本身的设计特点对生态环境有着极强的适应能力,同时适时抓住了成长机遇,从而厚积薄发。

Python逐渐发展成了一个特别简明友好、容易上手、功能强大的语言,发展过程中,Python抓住了三次飞速发展的机会。

第一个机会,Web与敏捷开发

在受到广泛关注之前,Python更多地是作为简单脚本语言,配合一些系统相关工作而被运用(主要是跟Perl抢地盘)。Python开始受到广泛关注,得益于Google的推动。Google或许不是第一家使用Python的公司,但它是第一家大规模使用Python进行Web相关开发的全球著名公司,从而有力地证明了Python能够很好地完成Web开发相关的许多工作。

而此时互联网正开始向快速开发转型,开发速度对于企业,尤其是初创企业而言至关重要,因此Python简洁便利与高效开发的特点吸引了众多企业和组织,同期衍生出来的社区环境又为Python提供了无数优质到可以进行生产级使用的模块和包;对比彼时PHP的模板式开发,Java的庞大繁杂,Ruby的语法新奇多变,Python为中小型企业的快速开发提供了尤为可能的解决方案,从而使得Python开始小有名气。

第二个机会,科学计算

相较于商业开发,科学计算面向更多的是非专业的编程人员,从这个方向上来说,抛开商业化软件不谈,Python的竞争对手也是前有Fortran,后有R、Julia语言的存在,虽然历史积累不如Fortran,抽象形式不及R,现代化和综合性能不如Julia,但是这些却仍然没有妨碍Python在这个领域里大显身手。

历史积累不如Fortran?没关系!借助C接口把Fortran包包裹起来让Python用就好;

抽象形式不及R?没关系!Python语法简单库还多,学习起来也不难,效率还高一丢丢,更重要的是借助这些特点能直接做产品,比R更具市场亲和力;

现代化不如Julia?没关系!Python社区大,要啥包有啥包。

更让人们惊喜的是,借助Python的各种模块和包,能够十分简单地实现之前需要折腾很久的繁杂工作,诸如访问数据库和表格文件,哪怕是在R语言中,仍旧需要从ODBC里一点点拿出数据;而用Python,以Pandas,一句话就能解决数据的读甚至写。

并且,随着计算金融和大数据的兴起,大量程序员开始投入科学计算,相较于Fortran的陈腐、R的浓厚统计数学意味以及Julia的不发达社区,Python自然而然的成了很多人的首选;而经验丰富的程序员又更进一步推动了Python社区的发展,更多优秀的包和模块得到了迅速推广:

矩阵、符号、科学计算?有NumPy、SymPy和SciPy;

统计分析?有Pandas;

可视化?有matplotlib、seaborn;

……

于是,Python很快便在该领域占据了半壁江山。

第三个机会,深度学习

在较早的很长一段时间里,提到机器学习,人们往往会使用C++、Java等作为主要工具。GPGPU的出现使得计算庞杂的机器学习任务开始由CPU向GPU转变,但研究者直接进行GPU编程,在计算复杂的模型时,不仅需要大量心智来分析算法的设计,还不得不投入大量精力解决显卡计算开发中的工程问题,为研究增添了非常大的难度。

随着时间的积累,更多的开源库出现,使得机器学习中主要算法实现抽象成了一个个模块,研究者才得以从繁杂的工程开发中解放出来。此时,代码成了模块的调用和描述,使用诸如C++或Java这样繁杂的工程化语言不再是必要选择,特别是更通用化的深度学习出现,促使研究者需要一种更加易读、易分析的描述性语言(DSL)来解决问题。

而Python因此前在科学计算领域已有广泛应用,加之它能很容易接入现有的C/C++库,以及良好的可读性,成为不少框架的必然选择,如Theano和Caffe。同时,由于AlphaGo亮眼的表现聚焦了众人的注意力,并随后开源了以Python为接口Tensorflow,使得由AI热潮带来的学习者纷纷奔向了Python和Tensorflow。

之后,越来越多的框架都开始提供Python接口——Python能够容易而清晰地描述模型结构,轻松解决计算中的数据输入(无论从硬盘、数据库、网络中的任何一种)问题,简单地实现可视化,并能轻易地设计为Web服务。甚至连使用Lua的Torch都实现了以Python为接口的演进版本PyTorch。至此,Python几乎已经统治了深度学习的模型设计、训练领域。

需要资料的私信小编(资料)获取全套学习资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值