1

教学大纲

发布时间:2022-11-06 10:13   发布人:胡明才   浏览次数:189


 

Python大数据应用基础》

教学大纲

 

 

 

 

课程名称 Python大数据应用基础

所属部门       会计系         

所属教研室  统计与会计核算教研室

制定人        胡明才        

 

 

会计系

制定日期:2022年9月




一、课程简介

课程名称 Python大数据应用基础

授课对象:经济类专业学生

课程代码

学分:4

学时:64

前导课程

考核方式考试

课程类型:(打钩,可多选)þ¨理工类课程 ¨¨人文类课程

其它分类:____________________________.

二、教学目的和要求

通过本课程的学习,使得学生能够理解Python的编程模式熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用Python读写文本文件与二进制文件,了解Python程序的调试方法,熟练运用Python编写面向对象程序,掌握Numpy Pandas进行数据预处理和数据分析的基本用法,掌握使用matplotlib进行数据可视化的用法,掌握Scikit-learn进行机器学习的基本用法。

在教学和学习过程中,应充分发挥Python语言的优势,从最简单、最直观的思路出发,尽快解决问题。不建议在底层语言细节上花费太多时间。

三、教学中应注意的问题

Python编程模式中非常重要的一条是代码简单化、问题简单化,同时应保证代码具有较强的可读性。在教学过程中,尽量避免在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,尽量多使用Python内置函数、标准库对象和合适的扩展库对象,保证代码的优雅、简洁,让代码更加Pythonic.

使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免自主编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率。例如如果需要进行排序则直接使用内置函数或方法进行排序,切不可再使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现;计算最大公约数应习惯于使用math标准库的gcd()函数;对数据进行随机乱序应使用random标准库中的shuffle()函数从给定数据集中随机选择元素应使用random标准库中的choice() 函数等等。

大数据模块部分的理论知识可以不深入讲解,同时可以增加这部分内容的实践课程。

四、教学内容

模块一:大数据及Python概念

1.1大数据的发展和现状

教学重点大数据技术支撑、发展历程和国内外发展现状,主要突出我国已将大数据作为基础战略资源,大数据发展前景光明。此处建议融入思政内容。

1.2大数据的概念

教学重点什么是大数据以及大数据的四个特点数据量大(Volume)数据类型繁多(Variety)、 处理速度快(Velocity) 和价值密度低(Valuc)。

1.3大数据的应用

教学重点大数据在各个领域的应用情况,此处可以融入思政内容。

1.4大数据的关键技术

教学重点大数据技术主要涉及数据采集、数据存储和管理、数据处理和分析、数据安全和隐私保护等几个方面。

1.5大数据分析的现状和步骤

教学重点通过了解大数据分析的现状,可知目前大数据分析人才的紧缺。大数据分析的步骤是获取数据后进行机器学习。

1.6 Python在大数据应用中的重要性

教学重点 Python 的包装能力、可组合性、可嵌入性都很好,可以把各种复杂性包装在Python 模块里,利用接口就可以完成复杂的数据处理操作。

1.7 Python与数据分析的关系

教学重点Python是粘合剂,面向生产的,且具有强大的数据分析第三方库。

模块二:Python基础知识

2.1 Python概述

教学重点 Python的发展历史与特点,下载、 安装和使用Python及下载、安装和使用集成开发环境Anaconda3.

2.2基础数据类型

教学重点数字类型包括布尔型、整型、浮点型和复数等字符串界定方法。数字和字符串的简单使用

2.3常量和变量

教学重点不需要事先声明变量名及其类型,变量命名规范,数字大小无限制。

2.4运算符与表达式

教学重点同一个运算有不同含义,关系运算符和逻辑运算符的惰性求值特点。

2.5常用内置函数用法

教学重点很多函数有基本用法和高级用法,注意这些函数的可选参数理解函数式编程的模式。

教学难点函数式编程.

模块三:程序流程控制结构

3.1顺序结构

教学重点顺序结构的语句主要有赋值语句、输入语句、输出语句等。

3.2分支结构

教学重点单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套,条件表达式后必须有冒号且换行缩进后开始写代码块,elif关键字表达else if的意思。

教学难点缩进体现代码的业务逻辑。

3.3循环结构

教学重点for循环、while循环range对象在循环中的使用,成员测试符in与序列解包在循环语句中的使用,带有else子句的循环结构,编写多层嵌套的循环语句时应尽量减少内循环中的计算 break 与continue语句的作用。

教学难点带有else子句的循环结构,循环代码的优化。

模块四:Python的数据结构

4.1列表

教学重点列表对象的创建与删除,其他类型到列表的转换,内置range()、使用 运算符、append()方法、extend()方法、insert()方法为列表增加元素,使用del命令、pop()方法、remove()方法删除列表元素使用下标访问列表元素使用index()方法获取列表元素下标,使用count()方法获取列表元素出现次数,有序序列的双向索引,使用成员资格判断运算符in判断列表中是否存在指定元素,使用切片访问、修改、删除、增加列表元素,列表排序方法sort()与内置排序函数sorted()以及列表逆序方法reverse()与内置逆序函数reversed() len()、max()min()sum()、zip()enumerate()等内置函数对列表对象的操作,使用列表推导式快速生成列表。

教学难点自动内存管理,切片操作,列表推导式,排序方法的key参数。

4.2元组

教学重点元组对象的创建与删除,其他类型到元组的转换,元组与列表的区别,生成器推导式。

教学难点元组与列表的区别,元组的不可变本质,生成器表达式与列表推导式的效率比较。

4.3字典

教学重点字典对象的创建与删除,字典元素、键、值的访问方法,字典元素的添加与修改,使用字典对象的get)方法获取指定键对应的值,有序字典对象的使用,使用字典来计数,有序字典。

教学难点字典对象的get()方法,访问字典对象时可以使用键作为下标,字典对象的键必须为不可变对象。

4.4集合

教学重点集合对象的创建与删除,其他类型数据到集合的转换,使用add()方法为集合增加元素,使用pop()和remove()方法删除元素,使用clear()方法清空集合集合的并、交、差以及对称差等运算,使用集合来提取序列中的唯一元素。

教学难点Python运算符的多重含义。

第五章 函数

5.1 函数概述

教学重点函数的功能和分类。

5.2函数和匿名函数的定义和调用

教学重点: Python函数和匿名函数的定义形式,def关键字,不需要声明函数的参数类型和返回值类型,括号不可以省略,冒号必须有。函数嵌套定义。函数递归调用。

5.3函数的参数

教学重点:形参与实参的概念,在函数内部直接修改形参不会影响实参。位置参数、默认值参数、关键参数和长度可变参数的用法。传递参数时的序列解包。

5.4函数的作用域

教学重点:在函数内如果只引用某个变量的值而没有为其赋新值,该变量为(隐式的)全局变量,如果在函数内任意位置有为变量赋新值的操作,该变量即被认为是(隐式的原局部变量,除非在函数内显式地用关键字global进行声明。

5.5函数的遍历和调用

教学重点:直接递归调用和间接递归调用。

教学难点:一定要有退出递归的条件。

5.6模块

教学重点:模块导入、模块位置搜索和查看模块内容。

教学难点:自定义模块方法。

5.7常用标准模块

模块六:面向对象程序设计

6.1面向对象概述

教学重点:什么是类和对象,面向对象程序设计的特点。

6.2类的定义和使用

教学重点: Python 类的定义,class 关键字,创建对象的方法,通过对象访问成员的方法。私有成员与公有成员,数据成员与成员方法,类方法与静态方法,属性的定义与使用,混入机制。

6.3继承

教学重点:继承的作用与Python实现。

6.4多态

教学重点:多态的作用与Python实现。

6.5特殊属性、方法与运算符重载

教学重点:构造函数__init _(), 析构函数_del _(),_ add_()、_ mul_ ()、_pow _()及其他Python类特殊方法与运算符的对应关系。

教学难点:特殊方法与运算符及内置函数的对应关系。

模块七:文件相关操作

7.1文件的类型

7.2文本文件与二进制文件的操作方法

教学重点:文本文件与二进制文件的概念与访问方法的区别,文件对象,Open()方法以及flush()、 close()、 read()、 readline()、 readlines()、 tell()、 write()、Writelines()等常用方法,上下文管理语句with的优点与用法。

教学难点:文件操作三步骤:打开文件、操作文件、关闭文件。

7.3 CSV和json文件的操作方法

csv、json等常见类型文件的操作。

模块八:数据预处理与数据分析

8.1了解数据

教学重点:掌握概念包括:数据的集中或离散趋势、数据缺失情况、噪声及离群点等。

8.2数据质量

教学重点:数据的完整性、一致性、准确性和及时性。

8.3数据预处理

教学重点:对缺失值、噪声数据、不一致数据、异常数据进行处理。

8.4特征工程

教学重点:包括特征选择、特征构建和特征提取。

8.5数据分析

教学重点了解关系模式、分类、聚类、回归的算法特点即可,不要求理解算法实现过程。

模块九:使用Numpy进行数据分析

9.1 NumPy 概述

教学重点: Numpy主要能解决什么问题。

9.2 NumPy Ndarray对象

教学重点: ndarray的内部结构和切片。

9.3 NumPy数据类型

教学重点:数据类型和数据类型对象的创建方法。

9.4NumPy数组属性

教学重点:数组的属性、秩和维度的计算方法。

教学难点是轴的转置。

9.5NumPy创建数组

教学重点:创建空数组、全0和全1数组。np.arange可设置起始值、终止值和步长。

9.6NumPy切片和索引

教学重点: ndarray 数组可以基于0-n的下标进行索引,切片对象可以通过内置的slice函数,并设置start, stop及step参数进行,从原数组中切割出一个新数组。

9.7 Numpy数组操作

教学重点:修改数组形状和数组元素的添加与删除。

9.8NumPy字符串函数

9.9 NumPy Matplotlib

教学重点:利用Matplotlib实现数据可视化。包括:中文文本的显示,设置图例。折线图、柱状图的绘制。柱状图绘制方法,内部填充、边线属性的设置。频率分布图的绘制方法,以及同一图中绘制多张图。

模块十:使用Pandas处理结构化数据

10.1 Pandas数据结构——Series

教学重点:一维数组Series概念和创建方法、索引和基本技巧。

10.2 Pandas数据结构——DataFrame

教学重点:二维数组DataFrame概念和创建方法、索引和基本技巧。

10.3 Pandas时间模块

教学重点:Pandas时间模块datetime主要是能够获得当前日期,时间等信息,

它包含的函数主要有datetime.date(), datetime. Datetime()、datetime.timedelta()和

parser.parse。

10.4 Pandas时刻数据

教学重点:时刻数据(Timestamp)代表时间点,通常用于金融领域数据分析。Pandas时刻数据需要掌握两个函数: pandas.Timestamp()和 pd.to_datetime()。

10.5 Pandas 时间戳索引

教学重点:利用DatetimeIndex ()生成多个时间戳,利用date_range()函数对时间戳进行索引。

10.6 Pandas时期

教学重点: Period 函数用于创建Pandas的时期,时间表示在时间轴上的长度。与时间戳不同,时间戳是时间轴的位置。

10.7时间序列——索引及切片

TimeSeries是Series的一个子类,所以Series 索引及数据选取方面的方法基本一样。同时TimeSeries通过时间序列有更便捷的方法做索引和切片。

10.8时间序列——重采样

教学重点:降采样、升采样和采样时间点变化。

10.9数值计算和统计基础

教学重点:常用数学、统计方法包括计数、最大值、最小值、求和、均值、中位数和样本峰度等。

10.10文本数据

教学重点:Pandas针对文本字符串配备的一套方法,使其易于对数组的每个元素进行操作。

10.11合并

教学重点: merge函数可以实现全功能的,高性能内存中连接操作,与SQL等关系数据库非常相似。

10.12连接与修补

教学重点: concat 连接是沿轴执行数据连接操作。

10.13去重及替换

教学重点: duplicated()函数可以对数组进行重复数据去除,而replace()函数则可以对数组中的指定数据进行替换。

10.14数据分组

教学重点:利用Pandas中的groupby功能进行数据分组。

10.15数据读取

教学重点:利用read_table ()函数读取表格,利用read_csv ()读取csv文,还可以利用read_excel ()函数读取excel文件。

模块十一:使用Numpy和Pandas对数据进行预处理

11.1缺失值处理

教学重点:删除记录、数据插补和不处理三种方法。

11.2异常值分析和处理

教学重点:正态分布3σ原则和箱型图分析。

11.3数据归一化/标准化

教学重点: 0-1标准化和Z-score标准化。

11.4数据连续属性离散化

教学重点:等宽法和等频法。

11.5数据预处理案例: USDA食品数据库

教学重点:掌握json数据导入和数据预处理的完整流程。

模块十二:使用Scikit-learn进行机器学习

12.1常用模块

教学重点:常用的模块有分类、回归、聚类和模型选择等方法。

12.2机器学习案例——识别 Iris (鸢尾花)类别

教学重点:机器学习模块选择,模型构建和可视化模型结果。

模块十三:综合案例

13.1综合案例1:分析各省市各年度的流感人口数据

教学重点: python的Pandas进行数据分析,包括数据框的增删查改、批量读取数据、变量类型的转换、数据框的重塑与合并。

13.2 综合案例2:利用泰坦尼克号数据进行生还者分析

教学重点: Scikit-learn进行数据分析,包括逻辑回归,特征工程选取,利用测试集和训练集构建模型等。

五、教学课时分配

教学课时分配表(参考)

教学模块

内容安排

1

Python编程入门

计算机科学素养(编程基础)Python安装

2

数据与表达1——基本数据结构

3

数据与表达2——组合数据结构列表、元组、字典

4

顺序结构、选择结构、循环结构

5

函数与代码复用

6

类和面向对象

7

文件输入输出

大数据方向

8

AI模块

Numpy库的应用和Pandas数据采集与分析

9

数据预处理

10

机器学习

11

综合案例讲解

12

总结、复习

 

六、教材与参考书目

1.教材Python程序设计基础与应用》

2.参考书目

(1)《Python数据分析与实践》

(2)《编程导论——Python为舟》