关键词:Python;大数据分析;可视化;理实一体;教学模式;探索与实践
中图法分类号:G642 文献标识码:A
随着大数据时代的到来,了解大数据分析与可视化技术成为时代发展的需要。无论是说明事特属性、展示数据规律、阐述规律原理,还是论述观点、支持决策、预测分析,都离不开大数据分析。大数据是基于数学和运算的科学表达,这需要科学计算、需要数据分析的支持。因此,“大数据分析与可视化”课程成为了新工科背景下,学生不可或缺的知识架构。
目前,传统“(理论课)黑板+粉笔+多媒体+(实验课)实践”教学模式,无法满足教学需求。
1“理实一体”教学模式探索
Python语言因为简单、易学、免费开源等优势,连续四次获得“年度编程语言”称号,受欢迎程度达到历史新高。其拥有超九万个的三方库,涵盖数据分析与挖掘、人工智能与机器学习、网络爬虫等计算机领域。
大数据分析与计算利用计算机进行数值计算,它是科学家通过运算掌握自然规律所采用的方法,更是普通人提升专业化程度的必要手段。开展基本的科学计算需要两个步骤:组织数据和展示数据。组织数据是运算的基础,是数据分析的基础,也是将客观世界数字化的必要手段;展示数据是体现运算结果的重要方式,也是展示结论的有力武器。而Python语言为开展人人都能使用数据计算与展示提供了有力的支持。
因此,选用“基于Python的大数据分析与可视化”教学是目前较为领先和业界公认的最为合适的选择。其中,Python的三个数据分析工具Numpy、Pandas、Matplotlib是在数据分析与可视化方面最具其代表性的三方库。
由于到该门课程的实践性很强,传统教学模式已不再符合课程要求。而在教学模式的探索中,我们发现实施“理实一体”教学模式则可解决这个问题。
“理实一体”教学模式即理论实践一体化的教学模式。其突破了以往理论与实践相脱节的现象,教学环节相对集中。它强调充分发挥教师的主导作用,通过设定教学任务和教学目标,让师生双方边教、边学、边做,全程构建素质和技能培养框架,丰富课堂教学和实践教学环节,提高教学质量[2]。可以说,“理實一体”是一种充分调动和激发学生学习兴趣的教学模式。
1.1教学环境的搭建及教学资源
1.1.1教学环境的搭建
该门课程的教学需在机房进行,并安装“Python+解释器+三方库”,搭建运行环境。
Python的安装建议选择64位Python3最新版本;解释器选择Pycharm最新英文原版,建议不要汉化;同时,使用pip命令安装三个外置三方库——数据分析基础工具numpy、处理结构化数据工具Panda、Matplotlib实现交互式图表绘制。
1.1.2 教学资源
由于学生机安装有不同的操作系统,而Python的版本和运行环境也有很多选择。因此,我们已将录制好的搭建Python运行环境的视频上传至学习通在线平台,供学生课前参考。同时,在教学的过程中,我们同步上传了教学讲解视频和PPT,供学生课前预习和课后复习;学习中需用到的data,即案例中用到的.csv、.xls文件及图片资源均可以在学习通线平台下载使用。
1.2教学内容的选择与组织
1.2.1教学内容的选择
本课程目前面向理工科类学生开设,其教学内容包括:了解三种常见数据形态——ndarry、Series、DataFrame。掌握三种数据的获取、处理等方法,能完成将处理后的数据用图形展示等操作。
围绕以上教学内容,我们采用“理实一体”教学模式,选用案例教学法,将教学内容划分成六个模块。其中,课前导读与结题文档两个模块分别在开课前和结课后进行,不占用课堂教学时间。其余四个模块中的每个教学内容均包括“理论讲解+案例演示+操作实践+课堂小测”四个教学环节,具体内容划分如表1所列。
整个课程的教学内容遵循科学计算两步骤,即包括对数据的分析与组织和展示数据两部分。先学习Numpy的矩阵,包括矩阵的创建、运算、读取、运算等;再学习Pandas的Series、DataFramer,包括Series、DataFramer的创建、选择、运算、排序、分组、文件的读写等;接下来学习用Matplotlib进行数据展示;最后通过综合案例掌握数据处理方法和图形展示技巧等,并形成实验报告。
1.2.2教学内容的组织
以上六个模块既相对独立,又相互关联。每个教学内容均由“理论讲解+案例演示+操作实践+课堂小测”四个教学环节构成。每个教学内容的知识点不同,但每个知识点环环相扣,层层递进。
首先,对本堂课所涉及的教学内容和知识点进行讲解和概括,让学生建立本次教学内容的知识轮廓;接着,将教学内容中的各知识点穿插在案例中。一边演示一边讲解,让学生去体会、领悟。每个知识点的“案例演示”结束后,即进入“操作实践”环节。接下来进入下一个知识点,实现“案例演示+操作实践”环节的循环进行。随着环环相扣的知识点在案例中演示与讲解,并在操作实践环节让师生无缝交互与问答,让学生享受这样的教学过程。最后,通过课堂小测环节,对这堂课的教学内容进行巩固、复习。
同时,在课堂中选用的案例和数据应与生活、工作、学习息息相关,比如某餐厅的消费数据、部分运动品牌的各类产品销售数据、共享单车的租赁数据等。通过对这些数据进行分析、提取和展示,得出结果,最终为决策提供帮助。从而让学生体会到学与用不能脱节,用兴趣引导学生爱上课堂,变被动学习为主动学习[3]。将知识融会贯通,体会到运用知识解决实际问题的乐趣。
1.3教学过程的设计
教学过程的设计遵循从简单到复杂、层层递进、环环相扣的原则。本文以教学内容“柱状图”说明“理实一体”教学模式在教学中的应用。
1.3.1理论讲解
柱状图又称长条图或柱状统计图,通过三方库matplotlib.pyplot的bar函数实现,其中函数的基本语法为bar(x,y)。除了基本柱状图外,我们还会学习到叠加柱状图、半层叠柱状图、平行柱状图用法,并会同步学习bar函数其它各参数用法以及在figure中legend函数的用法[4]。
1.3.2 基本柱状图
①案例演示选择tips.csv表,即将某餐厅的消费数据导入cs=pd.read_csv(“……/tips.csv”),并让学生观察,表中数据为DataFrame,column信息如图1所示。
简单柱状图只需通过一次分类、简单运算就可获得想要数据。案例1如图2所示,展示不同gender与bill的关联性:
此例需用到gender、bill两列数据,只需对gender列按female和male分类后对tip运算,不需对数据进行多次处理和复杂运算。接下来,介绍两种方法实现数据的获取。
方法1:在原表中按条件运算获取数据
femalemean=cs[cs['gender']=='Female']['tip'].mean()
malemean=cs[cs['gender']=='Male']['tip'].mean()
此方法是在原表中按不同gender求平均值运算,运算结果为两个数据,分别存入femalemean和malemean中。依图2所示将对应参数放入函数相应位置后可得:
plt.bar(['female','male'],[femalemean,malemean],width=0.5,color='green',edgecolor="red",alpha=0.4)
其中函数中x坐标为'female'和'male',y坐标为femalemean和malemean的值,放入两个必选参数后,还有width、color等可选参数供设置。在此过程中,引入bar函数参数的格式、用法。注意区分必选参数和可选参数。
方法2:采用分组与运算同步进行
gendermean=cs.groupby(by='gender')['tip'].mean()此方法可得到一个Series,通过对Series的index和values值的获取作为bar的x,y参数。
plt.bar(gendermean.index,gendermean.values,width=0.5,color='green',edgecolor="red",alpha=0.4)
所得图形展示结果与方法1一致。
接下来启动Pycharm运行环境,体会每一个函数的用法,每一条语句的作用,并查看运行结果,如图3所示。
②操作实践
用上述两种方法,展示就餐日期(day)与消费金额(total_bill)的关联性柱狀图。并修改bar函数各参数,查看运行结果有什么不同。
此环节实现理论与实践的无缝衔接。
1.3.3叠加柱状图与两次分类
①叠加柱状图
在知识点1的基础上,案例2如图5所示,要求用叠加柱状图展示gender与bill关联性:
并在案例的讲解与演示中,引入bar函数里bottom和label参数的使用方法。
②两次分类
案例3难度有所提高,数据的获取需要进行两次及以上分类处理。用叠加柱状图展示不同day和不同gender的total_bill消费总额。如图6所示:
据题意可知本案例需用到'total_bill','gender','day'三列数据并进行两次分类,才可得到所需数据。
由于total_bill属于数字列,sum函数会自动对数字列进行运算,故可得:
df=df[['total_bill','gender','day']]
tmp=df.groupby(['day','gender']).sum()
将两次分类后计算所得数据作为bar的x,y值,生成经过两次分类的叠加柱状图。同时,通过本案例将引入legend函数的用法。
通过数据展示结果可看出,周末餐厅的消费额更高,而周一到周五有市场潜力可挖掘——在非节假日或非周末时间通过开展一些促销活动提升客流量。
③操作实践
实践2要求读取titanic.csv中的数据,用叠加柱状图展示不同who的alive人数,并能对展示结果作分析。提示:本案例除需进行两次分类运算外,同时需要通过增加数据列来解决问题,请同学们思考并在实践中解决。
1.3.4 半重叠柱状图
案例4不但需进行两次分类获取数据,同时图形将把数据以半重叠柱状图展示出来,如图7所示。
在此案例中,会谈到如何在柱状图上方显示数值文本,引入forxinzip语句、matplolib.pyplot中text函数的使用方法,以及在生成半重叠柱状图时align参数的使用方法。
接着学生完成实践3,读取penguins.csv文件数据,用半重叠柱状图展示不同species,不同sex的body_mass_g的平均数,熟悉半重叠柱状图的用法。
1.3.5平行柱状图
案例5用两次分类获取数据,并将数据以平行柱状图展示。如图8所示。此案例不但要求学生学会在平行柱状图中展示x参数与width参数的用法及关系,同时学习xticks函数的用法。
如图8所示,该案例会综合运用title、xlabel、ylabel、legend、show等相关函数。
参照案例5,实践4要求读取exercise.csv文件,用平行柱状图展示不同diet,不同kind的pulse的中位数值。
如上述流程可知,在“案例演示+操作实践”环节的循环过程中,每一个精心设计的案例采用进阶方式让学生逐步掌握新的知识点,在操作实践环节即时对知识点进行理解、巩固、解惑,同时还能对前面所学知识点进行复习,比如三方库的导入、文件的读取、各类运算函数的使用等。
1.3.6课堂小测
在完成所有“理论讲解+案例展示+操作实践”后,进入最后一个环节——通过在线平台完成本章课堂小测,并提交实践环节的所有.py文件。这个环节有助于老师了解、检查学生当堂课学习状况,以便下次课前对易错的重难点问题进行点评和答疑。
如上所示,每堂课的知识点由浅入深、层层递进、环环相扣,而每个知识点的“案例展示+操作实践”环节紧密衔接。案例设计既有趣味性,又具实用性,让学生在这样的氛围下紧跟课堂节奏,主动学习,并给学生思考及解决问题的空间和时间,变被动学习为主动学习。
1.4教学实效
本课程以开放实验项目形式进行试点,参与学生共计29人,分为3个小组。除完成94个知识点的实践作业外,还分组完成了3个综合实践。从提交的实验报告可以看出,学生掌握了Python计算生态;掌握了大数据分析与可视化的常用操作。大多数学生表示,“理实一体”教学模式改变了理论与实践脱节现象,实践环节让学生从获取数据,到数据分析,再到看到展示出的图形,整个过程能获得喜悦感。这也说明该课程采用“理实一体”教学模式是成功的。
2结语
本文对“基于Python的大数据分析与可视化”课程进行了教学探索与实践,采用“理实一体”的教学模式,通过“理论讲解+案例演示+操作实践+课堂小测”的教学环节,说明该模式的基本教学程序包含设定教学目标、教师示范性操作与讲解、学生实践操作(理论指导实践,实践检验理论)、学习效考核与评价这四个环节,实现了“教、学、做、考”四位一体。
作者简介:
刘颖(1978—),硕士,副教授,CCF会员,研究方向:大数据分析、图像处理。