前言
从毕业以来我把自己的主要精力都花在学习中间件的设计实现、分布式算法的原理及使用场景、架构设计理论(方法论)。我认为自己java水平并没有很高,如果自己工作中用到的语言都学不好就跑去学其他语言相关的东西,那就是”捡了芝麻,丢了西瓜“。当然,更多的是没有使用场景,在工作中我基本上不可能跨语言编程来完成我的工作。可能是我年少时太无知,随着我编程经验的增长,我开始否定自己之前的看法。我发现一些曾经的小语种也变得流行起来,而且在一些细分领域上他们似乎更加有优势。
举个例子来说,我发现在日常工作中我经常会和excel打交道,这个东西很烦,各种格式问题。我工作中最长见一个场景是运营给我excel让我帮忙刷数据。这种情况下使用java来完成说实话真的很烦,你需要去解析excel然后再去刷。我们知道excel烦就烦在我们需要对其格式进行调试,有时候一个单元格里面放的到底是字符串还是数字这个需要我们去调试。那这种情况下我们可以使用一些工具把excel里面的数据转化一下,让工具帮我们把数据处理成一个更容易解析的格式,那我们就可以直接得到结构化的数据,能省去很多debug的时间
那就直入主题,讲讲今天的主角Python。之所以选择针对Python进行一个21天的学习计划,主要目的是为了能学会Python的数据处理方式。 这套学习方法肯定不太会注重机器学习这方面,因为我不是做这方面的人才。这套学习计划主要针对Python基础语法、数据处理类库(Pandas、Numpy)的学习。如果有兴趣的朋友可以跟着学学看看,发现有些不合理的地方可以联系我改正。
第一周
学习内容
词法、句法、oop、基础数据类型的常见操作(尤其注意要熟练字符串的拼接、替换)。文件io(csv、txt、json、excel),原生os层面的io以及三方框架的io。
词法: 变量的定义、变量的种类、变量的作用范围
句法: 方法的定义、条件判断语句、选择语句、循环语句
oop: 类的定义、类的实例化、类的创建与销毁(只需要知道语句层面,不需要深入到虚拟机层面)
文件io: 这里只是学习API层面,如何使用好os、pandas库来读取文件。
相关资料
- 像计算机科学家那样思考 Python中文版第二版.pdf (这本书网上很多地方都有,自行下载就好)
- python读取文件的几种方式
- Pandas库的学习
检验方式
- 字符串拼接、替换、查找判断。
- 利用循环打印杨辉三角。
- 利用递归解决斐波拉契数列问题。
- 文件读写,对数据进行排序、分组、去重等操作。
第二周
学习内容
数据分析工具的使用(numpy、pandas)、socket使用、http使用、正则的使用
检验方式
- 使用socket库搭建聊天服务器(需要用oop来抽象,并对服务端的socket通讯做到抽象隔离,让他能用任何方式来替换其实现。比如:目前基于系统socket库来实现,我们要保证换成其他库来实现仍然能保持最小改动量,只需要实现一个类就行。类似java的多态机制)
- http GET POST 等的请求的使用
- 爬取一个页面,获取页面上的所有图片、链接,并分别按照字符串倒序排序
- 使用数据分析工具分析日志 (统计错误次数、找到错误次数最多的错误信息)
相关资料
- python 实现TCP socket通信和 HTTP服务器、服务器和客户端通信python实例
- python实现http请求
- 轻松了解python正则表达式 (超详细,附举例)
- Python之numpy详细教程
- 如何在Pandas中实现类似于SQL查询的数据操作?
- Python pandas用法最全整理
第三周
学习内容
基于scitoll-learn来搭建机器学习模型
检验方式
- 跑通学习案例
相关资料
写在最后
这里强调下,这篇文章主要侧重于把Python当做一个工具来使用。很多Python重点应用的地方我省略掉了,原因就是我不是专门从事这个语言的开发者,我更多的诉求只是利用它的便利性来当做一个小工具。如果真的想学习机器学习等方面的知识,本篇文章不提供任何参考价值。