Python零基础入门
零基础入门就得从最基本的变量,语法格式,数据类型,函数,作用域,模块等基本知识入手(有编程基础基础也得这么来) 和篮球一样,先来三步上篮:
- Python基础知识入门,从程序基础开始学,能看懂代码就可以了。三种选择: 第一种:找一本Python入门教程书,比如《Head First Python 中文版 》《笨办法学Python 》《简明 Python 教程》。Head First系列书籍都非常简单易懂,适合文科生看,从最基本的东西讲起,有编程基础的同学看着会觉得幼稚。另外两本都是普通入门书,随便选。 第二种:看网站入门教程,很多人推荐的廖雪峰Python教程 第三种:视频教程,推荐慕课网。其他还有网易云课堂,学堂在线(这个里边大学课程比较多)
- 学写一些基本的Python程序,上述《简明 Python 教程》后边的示例可以做。想更进一步掌握基础,可以做一点leetcode easy题目练练手。(看个人情况呗,反正我是没那个耐心,做题实在太枯燥,虽然写题是很有好处的)
- 做一些感兴趣的小项目,这里有Python习题100例,很基础。觉得不够高大上可以玩实验楼里的项目,实验楼是个不错的网站,可以做一些很好玩的东西。
以上三步可以让你21天精通Python哟 Tips:推荐一个神器,Python运行可视化,可以一步步查看程序运行状态,变量状态,函数调用,内存分配,对于理解变量生命周期,作用域,调试理解程序非常有帮助。 开发工具:推荐Pycharm,有免费社区版,也可用edu邮箱注册专业版。
Python进阶篇
进阶就是专注于Python的某个领域做深入研究了,Python主要包含了AI领域(NLP,深度学习,图像处理啥的,反正无所不能),Web开发(后端服务,爬虫),数据处理(数据分析,科学计算),工具(比如读写Excel,编写自动化脚本),桌面开发(GUI工具)等等。Python好强大啊,我又想写Python了。
Web开发
Python Web框架众多,是建网站的利器。对于建立不太复杂的CMS系统(比如新闻网站,博客网站),Django强到没朋友,开发效率无敌。对于注重灵活性的网站,Flask可以作为首选,灵活而小巧,非常优雅的框架。
- Django入门先看官方文档,了解基本概念。然后开始做实际项目,比如Django开发博客系统教程
- Flask入门看官方文档,同Django。
爬虫(网络数据获取)
先科普,网络爬虫,可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到资源,那么它就会抓取下来。比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。简单地说,利用程序从网页上获取你想要的数据。 Python的爬虫框架非常多,也非常好用。 入门步骤:
- 理解网页是怎么构成的 网页的基本知识包括: 基本的HTML语言知识 理解网站的发包和收包的概念(POST GET) 稍微一点点的js知识,用于理解动态网页
- 解析网页,这里需要学习正则表达式
- 选取一个爬虫框架,比如自带的urllib,request,bs4等等
- 看官方文档,如何使用框架,然后就可以养一只爬虫咯。
数据处理
上边爬虫讲到如何获取数据,这里将学习如何分析处理数据。 科学计算,数据处理用到比较多的是matlab,无所不能的Python当然也可以替代它。 numpy pandas是科学运算当中最为重要的两个模块。Matplotlib 是一个非常强大的 Python 数据可视化工具,绘制各种图形。
- 看官网文档,理解这个库的基本用法。
- 学习一些简单的项目,上文提到的实验楼也可以用
AI领域
略从别处引用一点基本介绍
- Theano 是一种用于使用数列来定义和评估数学表达的 Python 库。它可以让 Python 中深度学习算法的编写更为简单。
- Keras 是类似 Torch 的一个精简的,高度模块化的神经网络库。Theano 在底层帮助其优化 CPU 和 GPU 运行中的张量操作。
- Pylearn2 是一个引用大量如随机梯度(Stochastic Gradient)这样的模型和训练算法的库。它在深度学习中被广泛采用,这个库也是以 Theano 为基础的。
- Lasagne 是一个轻量级的库,它可以在 Theano 中建立和训练神经网络。它简单、透明、模块化、实用、专一而克制。
- Blocks 是一种帮助你在 Theano 之上建立神经网络模型的框架。
- Caffe 是一种以表达清晰、高速和模块化为理念建立起来的深度学习框架。它是由伯克利视觉和学习(BVLC)和网上社区贡献者共同开发的。谷歌的 DeepDream 人工智能图像处理程序正是建立在 Caffe 框架之上。这个框架是一个 BSD 许可的带有 Python 接口的 C++库。
- nolearn 包含大量其他神经网络库中的包装器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些机器学习的实用模块。
- Genism 是一个部署在 Python 编程语言中的深度学习工具包,用于通过高效的算法处理大型文本集。
- CXXNET 是一种快速,简明的分布式深度学习框架,它以 MShadow 为基础。它是轻量级可扩展的 C++/CUDA 神经网络工具包,同时拥有友好的 Python/Matlab 界面,可供机器学习的训练和预测使用。
这里包含的东西太多了,基本学习方法如上。