《基于Python语言的网络数据挖掘》实验指导书电子科技大学信息与软件工程学院二○一四年6月一、实验教学目的和要求:实验目的:本课程实验旨在加深学生对于网络大数据挖掘的理解,培养学生分析、设计、实现基于Python语言的网络数据挖掘算法,掌握科学的实验方法,为以后其他专业课的学习打下坚实的基础。
该实验内容采用循序渐进的方式,从Python语言的基本语法入手,在加深学生对于Python语言熟悉的基础上突出数据挖掘应用。
实验提供功能要求,学生自己确定设计方案和需要思考如何设计最优化的算法,并完成结果记录和分析,充分发挥学生的创造性和主动性。
实验要求:了解并掌握Python语言的基本语法、能够使用Python读取或写入数据表、获取并分析网络文本数据、获取并处理图像数据等。
二、Python开发环境简介:本课程实验使用的Python开发环境为Python IDLE,其用户界面图见图1所示。
IDLE是开发python程序的基本集成开发环境,具备基本的IDE的功能,是Python教学的不错的选择。
当安装好python以后,IDLE就自动安装好了,不需要另外去找。
同时,使用Eclipse这个强大的框架时IDLE也可以非常方便的调试Python程序。
其基本功能包括语法加亮、段落缩进、基本文本编辑、TABLE 键控制、调试程序。
打开Idle后出现一个增强的交互命令行解释器窗口(具有比基本的交互命令提示符更好的剪切、粘贴、回行等功能)。
除此之外,还有一个针对Python的编辑器(无代码合并,但有语法标签高亮和代码自动完成功能)、类浏览器和调试器。
菜单为TK“剥离”式,也就是点击顶部任意下拉菜单的虚线将会将该菜单提升到它自己的永久窗口中去。
特别是"Edit"菜单,将其“靠”在桌面一角非常实用。
Idle的调试器提供断点、步进和变量监视功能。
图1Python IDLE界面图三、实验项目名称及目的要求:实验项目1Python语言的基本语法及简单应用1、实验目的1)掌握Python语言的基本语法2)掌握Python语言中创建模块的方法3)了解Python语言中定义类及其使用方法4)学习使用Python语言输出斐波那契数列的方法5)学习使用Python语言实现删除一个list里面的重复元素的方法2、实验内容1)根据Python基本语法功能设计出实现输出斐波那契数列的方法,并比较不同实现方法的性能。
2)根据Python语言中的排序和循环功能,实现删除一个list里面的重复元素3、实验原理1)设计输出斐波那契数列的Python程序:首先调用raw_input输入要打印的斐波那契数列的长度,然后把斐波那契数列存储于一个序列当中,并逐个打印序列的元素。
此实验部分实现代码如下#通过输入斐波那契数列的长度打印斐波那契数列FibonacciUptoNumer=int(raw_input('Please input a Fibonacci Series up to Number:'))n=FibonacciUptoNumerfibs=[0,1]for number in range(n):fibs.append(fibs[-2]+fibs[-1])2)设计删除一个list里面的重复元素程序:首先调用List.sort()对序列进行排序,然后调用last=List[-1]语句从后向前找出重复的元素,并逐个打印非重复的元素。
此实验部分实现代码如下if List:List.sort()last=List[-1]for i in range(len(List)-2,-1,-1):if last==List[i]:del List[i]else:last=List[i]print List4、实验步骤1)设计输出斐波那契数列的Python程序●分析实验要求●逐个打印输出斐波那契数列的元素●记录程序代码●记录并分析实验结果2)设计程序删除一个list里面的重复元素●分析实验要求●对list进行排序●从后向前查找并删除list中的重复元素●记录程序代码●记录并分析实验结果实验项目2使用Python读写Excel数据1、实验目的1)强化Python程序的设计和编程能力2)学习两种读取的Excel数据的方法3)学习写入Excel数据的方法4)掌握如何读写其他格式数据的方法5)掌握如何比较不同读写方法的运算性能2、实验内容1)用xlrd模块中的open_workbook实现打开Excel数据表,并设计使用索引和名称两种方法读取Excel数据,最终写入csv文件中。
2)用datetime模块中的datetime.now来计算两种不同的读取方法所用CPU时间,从而比较并分析不同算法的性能。
3、实验原理1)Python语句读取Excel表数据时,首先要调用xlrd模块,然后使用语句data= xlrd.open_workbook('excelFile.xls')打开Excel表格。
当一个Excel表格中包含多个Sheet时,可以通过索引或者名称顺序获取某一个Sheet中的数据。
使用的语句分别为table=data.sheet_by_index(0)和table= data.sheet_by_name(u'Sheet1')。
当获取某个Sheet的数据并存储在工作表table后,获取获取整行和整列的值(数组)的语句为table.row_values(i)和table.col_values(i),获取行数和列数的语句为nrows=table.nrows和ncols=table.ncols,循环获取行数据的语句为for i in range(nrows):print table.row_values(i)。
此实验部分实现代码如下#根据索引获取Excel表格中的数据def excel_table_byindex(file='abc.xls',colnameindex=0,by_index=0):data=open_excel(file)table=data.sheets()[by_index]nrows=table.nrows#行数colnames=table.row_values(colnameindex)#某一行数据list=[]for rownum in range(1,nrows):row=table.row_values(rownum)if row:app={}for i in range(len(colnames)):app[colnames[i]]=row[i]list.append(app)return listdef excel_table_byname(file='abc.xls',colnameindex=0,by_name='abc'): data=open_excel(file)table=data.sheet_by_name(by_name)nrows=table.nrows#行数colnames=table.row_values(colnameindex)#某一行数据list=[]for rownum in range(1,nrows):row=table.row_values(rownum)if row:app={}for i in range(len(colnames)):app[colnames[i]]=row[i]list.append(app)return list在该实验中,学生需用前述的Excel数据操作语句实现读取某一个Sheet数据的功能,并在此基础上,思考如何读取其他格式的数据,记录Python代码,并分析实验结果。
2)Python语句写入Excel表数据时,首先要调用pyExcelerator模块,然后使用语句w=Workbook()和ws=w.add_sheet('excelFile.xls')创建一个空白的工作表。
在某一个cell写入数据的语句为ws.write(i,j,'string'),而w.save('mini.xls')实现了存储写入后的Excel文件。
此实验部分实现代码如下from pyExcelerator import*w=Workbook()#创建一个工作簿ws=w.add_sheet('test')#创建一个工作表ws.write(0,0,'uestc')#在1行1列写入uestcws.write(0,1,'Sofrware')#在1行2列写入Softwarews.write(1,0,'cs')#在2行1列写入csw.save('mini.xls')#保存至mini.xls文件中在该实验中,学生需用前述的Excel数据操作语句实现写入某一个Sheet数据的功能,并在此基础上,思考如何写入其他格式的数据(如csv格式),记录Python代码,并分析实验结果。
3)比较两种不同的读取Excel数据的方法时,需要计算每种方法的运行时间。
首先导入datetime模块,并调用datetime.now()函数,记录某一段代码运行前后的时间点,通过开始和结束的时间点的差值计算出程序运行的时间。
此实验部分实现代码如下starttime=datetime.datetime.now()tables=excel_table_byindex()for row in tables:print rowendtime=datetime.datetime.now()print endtime-starttimestarttime=datetime.datetime.now()tables=excel_table_byname()for row in tables:print rowendtime=datetime.datetime.now()print endtime-starttime在该实验中,学生需用前述的CPU时间控制语句实现计算某一段代码的运算时间,并在此基础上,比较并分析两种Excel数据读取方法的性能。
记录Python 代码,并分析实验结果。
4、实验步骤1)设计按名称和按索引读取Excel数据的程序●分析实验要求●按行打印Excel表中的数据●记录程序代码●记录并分析实验结果2)设计写入Excel数据的程序●分析实验要求●按行将数据写入Excel表中●记录程序代码●记录并分析实验结果3)设计计算程序运行时间的程序●分析实验要求●记录程序代码●比较并分析实验结果●总结,撰写实验报告实验项目3使用Python实现网络爬虫算法1、实验目的1)强化Python程序的设计和编程能力2)学习网络爬虫算法的原理3)学习使用Python语言实现网络爬虫算法2、实验内容1)理解网络爬虫算法的原理,并设计使用Python语言获取网页数据的程序。