我们来从今天进行python编程语言的复习,希望一些顺利!
-
安装anaconda:python的包管理软件
-
安装pycharm(可在官网安装免费社区版本)
-
在电脑上安装git软件(windows环境下就和安装软件一个样)
安装好上述的东西,我们基本配置好了python的编程环境
-
学会在pycharm中创建工程和运行print("Hello World!")
-
python内容的简单学习:
- 简单数据类型和基本运算符
- python的最基本复杂数据类型——列表
明天我们尝试对列表进行一些更加复杂的操作,包括遍历、复制等,并且对python语言的书写规范进行说明
今天在学习列表排序的部分,我们见到了两种排序方法:
- sorted(列表对象)
- 列表对象.sorted(self)
我们需要对两种方法进行比较。其实今天的内容中任何对象.函数(self),都忽略了这个括号中的self。 这个self就是对象自身,而后我们就可以理解成,这个对象用自己具有的一个功能对自身进行了操作,比如东方不败这个对象具有拿刀子割肉的功能,最终他自宫了,而这个东方不败自己也就发生了永久改变,变不回去了。
sorted(对象)和del 对象 这些命名空间为全局的函数则不同,他们相当于临时创建了个对象的拷贝(替身),而后全部操作都作用到了这个对象的替身上,对象本身的东西没有被修改。就比如西方不败是东方不败的拷贝,那么西方不败发生改变关东方不败什么事。
很重要的是,如果我们将sorted(对象)的值返回给了原对象,那原对象才能改变,如:
东方不败.sort(self)
东方不败 = sorted(东方不败)
这两种方法的实现是相同的,但是第一种更加pythonic一些。
昨天已经对python的简单数据类型和复杂数据类型列表进行了讲解,今天我们继续学习列表的相关内容,并且会穿插一些基本的python编程入门规范的内容
-
列表的遍历——通过列表遍历学习python的循环
-
python中for循环的写法
-
列表解析的写法(这个比较pythonic,需要学学)
-
元素不可修改的列表——元组(tuple)
良好的代码除了简洁明了外,还需要有着较好的代码格式,这个方面python格式设置指南的编写者向我们提供了python改进提案(PEP)。PEP8是被广泛使用的PEP。
可以参考:PEP8代码格式 。。。python官网登陆还是挺慢......需要强调,良好的代码规范在工业界是很重要的,但是初学者不必拘泥于此。写好代码,宝宝姐说过“唯手熟尔”。
-
用if进行条件判断,即相应条件判断的变形
-
用户输入和while循环(for循环已经学了一些了)
-
字典数据类型
昨天说过代码需要有良好的格式,有机会我们就说说。比如你在写一个判断语句时if(4 > 0)这种有空格的写法就是优于if(4>0)。这种不带空格的写法往往会引起我的密集恐惧症。
- 进一步学习字典数据结构,并且学习三种复杂的复合数据结构:
- 字典列表(列表中的元素是一系列的字典)
- 字典的值是列表
- 字典的值是字典
-
进一步学习while循环,并且学习continue/break等循环相关的语句
-
使用while循环来处理列表和字典
到今天为止,我们就学习了基本的python语句,疯狂地累积语法其实并不可取,所以我们从明天开始,先跳出语法的学习,开始用python进行简单的数据处理。这个过程可能持续一周,在这一周中我们会遇到没有见过的语法问题,我们捎带脚进行讲解。excel能实现的功能,python理论上都已经实现,而且数量掌握python你会觉得数据分析的顺畅程度和优越感的获得是超过在excel用数据透视表的
-
如何使用pandas库中的函数?
-
pandas库中的数据结构有哪些?学习Series
- 用Series类构造一个对象homework1: 索引是‘a’到‘f’这6个小写字母,对应的值是111、222、333、...、666
- 把索引修改为‘a’到‘h’这8个小写字母
- 之后求出homework1中的缺失值个数
今天我们学习了pandas库中的Series,也做了作业。实际上Series就是一个类,类相当于面向对象编程(OOP)中的模板,比方说女娲造人之前她总归是有一个模板的,后面的人都要按照这个模板来造,造出来的就是对象。对象相当于是一个成型的人,他虽然属于人,但是有着自己的名字、特长(对象具有的方法)等。
一个对象 = 类(传入类中的原始参数) # 通过类,构造了一个对象
这个对象.方法() # 这里这个对象就可以调用自己的方法来杀人放火发挥功能了
以上所说的也就是面向对象编程的最浅显的内容,但是应该挺容易理解。
-
pandas中另一个重要的数据结构:DataFrame
-
python中如何编写函数?
-
写一个生成不定长度的班级同学成绩单的应用
在本节中我们学习了写python的函数,已经初步体会了函数的强大。 在本周末我们依旧会学习DataFrame和函数,掌握函数编程的一般知识
上周末因为准备今天的组会汇报内容停更了,从今晚继续开始
-
向python的函数中传递列表
-
向python中传递任意数量的实参
-
调用模块中的函数
- 两种导入别的模块中函数的方法:
from pandas import Series, DataFrame import pandas as pd 第二种方法相当于将pandas模块打开,之后将所有函数复制过来,as则为这些函数创建了别名pd 第一种方法仅从pandas模块中导入Series函数和DataFrame函数
-
pandas库对DataFrame索引的操作
-
面向对象编程初步:什么是类?
我们今天简单谈谈面向对象编程(OOP)。类是第一个重要的概念,其实人类就是一个类! 类包括两方面的东西 就是属性和方法。属性相当于人的肌肉、骨骼、器官。方法则是人具备的功能,比如写字、看书、上厕所等 > 。面向对象编程就是先创建类,之后生成类的实例的过程。当实例产生后,这个实例就可以真正地行使功能。后续学 习中我们将逐渐一遍学习编写面向对象的代码,而后逐渐深入各个概念。
附注1. DataFrame按索引选取数据的方法: + obj[val] : 选取列 + obj.ix[val] : 选取行 + obj.ix[:, val] : 选取列(更严谨的方法,第一种在一些情况下可能失败) + obj.ix[val1, val2] : 同时选取一些行和列 + reindex方法 : 本节代码中已经有所展示 + xs方法 : 根据标签选取行或列,之后返回Series + icol、irow方法 : 根据整数位置选取行或列,并返回Series + get_value、set_value方法 : 根据行索引和列索引选取单个的值
-
对不同索引对象的算术运算和数据对齐
-
对DataFrame进行函数应用和映射
-
数据的排序和排名
-
复习对DataFrame的操作
-
用pandas进行描述性统计分析
-
处理数据中的缺失值
-
层次化索引
-
整数索引
-
面板数据
-
python中类的概念
-
python中类和实例的创建
-
类的继承和方法重写
-
大类的拆分和模块中类的导入
python是一门面向对象的高级语言,因此掌握面向对象的概念就很重要。 本节开始的内容介绍面向对象编程的最基本内容,在掌握这些基本概念后,我们将进入实际的项目进行事件,从而深入理解面向对象编程的概念和具体编程规范。
-
python文件的读取
-
python文件的写入
-
json格式数据的python操作(json模块)
到今天为止,python的基本编程语法就都学习完成了,而且我们还学习了pandas的内容。此外,我们还剩了两块比较重要的基础知识,第一个是对文件的处理,第二个是对异常的处理。我们今天开始进入python文件处理的相关内容学习。 后续的内容可能进度较快,遇到不明白的代码可以google下具体的含义
-
python的异常处理机制
-
python的代码测试模块初步
下面我们对unittest.TestCase类中的断言方法进行汇总
Methods | Explain |
---|---|
assertEqual(a, b) | a==b |
assertNotEqual(a, b) | a!=b |
assertTrue(x) | x == True |
assertFalse(x) | x == False |
assertIn(item, list) | item in list |
assertNotIn(item, list) | item not in list |
-
Series和DataFrame的层次化索引:低维度处理高维度数据,类似于数据透视表的操作
-
层次化索引重排分层次序,进行不同级别的汇总统计
-
DataFrame的列和行索引的相互转换
numpy中的多维数组对象——ndarray(我将其记为n-dimentional array)
-
如何创建ndarray
-
ndarray的数据类型
-
ndarray数组的广播机制(broadcasting)初步实例
-
多维ndarray的切片和索引
今天的任务有点儿多,晚上就先更新到这里,明天从更复杂布尔型索引进行介绍
-
安装matplotlib
-
绘制简单折线图:plot(x, y, linewidth = 5)
-
绘制简单散点图 :plt.scatter(x, y)
-
散点图的颜色映射:颜色可额外为数据图增加一个维度的信息
-
什么是随机漫步? :这个介绍视频有意思
-
用随机函数choice()从列表中抽取随机数
-
用matplotlib模块绘制随机漫步图
-
如何读取csv文件与迭代器初识
-
对csv文件内容的进一步详细打印
-
用datetime模块处理日期:datetime模块中格式的实参
-
复习如何从本地读取json格式数据
-
初识requests包(后续学习时涉及网络编程时会大量涉及)
-
读取数据后绘制折线图(pygal模块)
-
时间序列分析初探(趋势、周期性、噪声):用math模块中的math.log10进行半对数变换
-
复习如何传递变长的实参