如今,Python已经成为一种再主流不过的编程语言了。它天生丽质,易于读写,非常实用,从而赢得广泛的群众基础,被誉为“宇宙最好的编程语言”,被无数程序员热烈追捧。随着时代的发展越来越快,市场需求越来越大,Python的应用也越来越广泛,不论你是刚开始学习Python的小白还是已经接触了Python,我都希望这篇文章能对你们有所帮助。
Python的魅力之处
根据PYPL 发布的7月编程语言指数榜,Python 在今年5月以 22.8% 的份额,首次超越 Java 拿下榜首位置后。
时隔2个月月份,7月Python保持持续上涨趋势,本月再次上涨5.5%,以23.59%的份额甩开 Java ,排名第一,正逐渐与 Java 拉开差距。
PS:趋势是与去年7月对比
在 ranked.com 的排名中,Python 是 2017-2018 年最受欢迎人工智能编程语言(第二是 C++,R 并未上榜)。
根据 Stack Overflow 流量统计,2017 年 6 月,Python 第一次成为高收入国家 Stack Overflow 访问量最大的标签,照此发展,到了 2019 年,Python 肯定会成为最受欢迎的标签。
在 GitHub 年度报告中,Python 超越 Java 成第二受欢迎语言。所有这些“刷榜”,都离不开最近人工智能尤其是机器学习的火热。Python 被誉为最好人工智能的语言,因为:
在数据科学和 AI 中占据主导地位;
拥有优质的文档和丰富的库,对于科学用途的广泛编程任务都很有用;
设计非常好,快速,坚固,可移植,可扩展;
开源,而且拥有一个健康、活跃、支持度高的社区。
Python是一门新手友好、功能强大、高效灵活的编程语言,学会之后无论是想进入数据分析、人工智能、网站开发这些领域,还是希望掌握第一门编程语言,都可以用Python来开启未来无限可能!
值得知道的Python程序库
Scikit-learn
你刚开始学机器学习吗?如果你需要一个涵盖了特征工程,模型训练和模型测试所有功能的程序库,scikit-learn是你的最佳选择!这个优秀的免费软件提供了机器学习和数据挖掘所需要的所有工具。它是目前Python机器学习的标准库。要使用任何成熟的机器学习算法都推荐使用这个库。
这个程序库支持分类和回归,实现了基本所有的经典算法(支持向量机,随机森林,朴素贝叶斯等等)。程序库的设计让迁移算法十分容易,使用不同的算法做实验非常轻松。这些经典算法可用性很强,能用于大量不同的情况。
但这并不是Scikit-learn的全部功能,它同样可以用来做降维,聚类等等任何你所能想到的。由于它构建在Numpy和Scipy之上(所有的数值计算都是由C语言来完成的),它的运行速度也超快。
这些例子可以告诉你这个库的功能,如果你想学习如何使用它,可以阅读教程。
NLTK
NLTK不算是一个机器学习的程序库,但它是做自然语言处理(NLP)必须的一个库。除了用于文字处理的功能,例如聚类,分词,词干提取,标记,解析等,它还包含了大量的数据集和其他关于词法的资源(可用于模型训练)。
把所有这些打包在一起的好处就不用再多说了。如果你对NLP感兴趣,可以看看这些教程!
Theano
Theano被广泛应用于工业界和学术界,它是所有深度学习架构的鼻祖。Theano是用Python,结合Numpy实现的。你可以用它来构建用多维数组实现神经网络。Theano会处理所有数学计算,你不需要知道底层的数学公式实现。
早在支持使用GPU进行计算不像今天这样普及的时候,Theano就已经提供了对GPU计算的支持。这个程序库目前已经非常成熟,能够支持很多不同类型的操作。这使得Theano可以在和其他库比较的时候胜出。
目前关于Theano最大的问题是API不是很好用,对于新手来说上手困难。不过市面上已经有了解决这个问题的封装包,比如Keras, Blocks 和 Lasagne,都可以简化Theano的使用。
TensorFlow
谷歌大脑团队为了内部使用创造了TensorFlow,2015年将其开源化。设计初衷是取代他们已有的封闭机器学习框架DistBelief,据说该构架太过于依赖Google的整体构架,也不够灵活,在分享代码的时候非常不方便。
于是就有了TensorFlow。谷歌从以前的错误中吸取了教训。许多人认为TensorFlow是Theano的改进版,它提供了更灵活和好用的API。可以用于科研和工业界,同时支持使用大量的GPU进行模型训练。TensorFlow支持的操作没有Theano多,但是它的计算可视化比Theano好。
TensorFlow目前非常流行。如果今天这篇文章里面提到的名字你只听说了一个,那很有可能是这个。每天都有新的提到TensorFlow的博文或学术文章发表。这个流行度提供了大量的用户和教程,新人很容易上手。
Keras
Keras是一个提供更高层神经网络API的库,它可以基于Theano或者TensorFlow。它拥有这两个库强大的功能却又同时大大地简化了使用难度。它将用户的体验放在首要地位,提供简单的API和很有用的错误信息。
同时Keras的设计基于模块,这就使得你能自由组合不同的模型(神经层,成本函数等等),而且模型的可扩展性很好,因为你只需要简单的将新模块跟已有的连起来即可。
有人觉得Keras太好用了,简直就是在作弊。如果你开始用深度学习,可以看看例子 和 文档,对于你可以用它做什么有个数。如果你要学习使用它,可以从 这个教程开始。
两个类似的库有Lasagne 和 Blocks, 但它们只支持Theano。如果你试过了Keras但是你不喜欢它你可以试试这些其他的库,也许它们更适合你。
PyTorch
还有一个有名的深度学习架构是Torch,它是用Lua实现的。Facebook用Python实现了Torch,叫做PyTorch,并将它开源了。用这个库你可以使用Torch使用的低层的库,但是你可以使用Python而不是Lua。
PyTorch对查错的支持很好,这是因为Theano和TensorFlow使用符号计算而PyTorch则不是。使用符号计算就表明在一行代码被解释的时候,一个操作(x+y)并不会被执行,在那之前,它必须先被编译(解释成CUDA或者C语言)。这就让用Theano和TensorFlow的时候很难查错,因为很难把报错跟当前的代码联系起来。这样做有它的好处,不过查错简单不在其中。
如果你想开始学PyTorch,官方文档适合初学者也会包含有难度的内容。
好啦!关于Python的简介就到这里啦!接下来就是送福利时间咯!现在就给大家分享我的Python学习整理资料,记住,不要害怕困难,学习使我快乐!
还有很多我就不一一截图了,需要这些资料的关注转发。私信找我就可以获取到,当然也欢迎和我交流。大家一起学习共同成长。
网友评论