您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 《基于Python语言的网络数据挖掘》实验指导书2014
《基于Python语言的网络数据挖掘》实验指导书电子科技大学信息与软件工程学院二○一四年6月一、实验教学目的和要求:实验目的:本课程实验旨在加深学生对于网络大数据挖掘的理解,培养学生分析、设计、实现基于Python语言的网络数据挖掘算法,掌握科学的实验方法,为以后其他专业课的学习打下坚实的基础。该实验内容采用循序渐进的方式,从Python语言的基本语法入手,在加深学生对于Python语言熟悉的基础上突出数据挖掘应用。实验提供功能要求,学生自己确定设计方案和需要思考如何设计最优化的算法,并完成结果记录和分析,充分发挥学生的创造性和主动性。实验要求:了解并掌握Python语言的基本语法、能够使用Python读取或写入数据表、获取并分析网络文本数据、获取并处理图像数据等。二、Python开发环境简介:本课程实验使用的Python开发环境为PythonIDLE,其用户界面图见图1所示。IDLE是开发python程序的基本集成开发环境,具备基本的IDE的功能,是Python教学的不错的选择。当安装好python以后,IDLE就自动安装好了,不需要另外去找。同时,使用Eclipse这个强大的框架时IDLE也可以非常方便的调试Python程序。其基本功能包括语法加亮、段落缩进、基本文本编辑、TABLE键控制、调试程序。打开Idle后出现一个增强的交互命令行解释器窗口(具有比基本的交互命令提示符更好的剪切、粘贴、回行等功能)。除此之外,还有一个针对Python的编辑器(无代码合并,但有语法标签高亮和代码自动完成功能)、类浏览器和调试器。菜单为TK“剥离”式,也就是点击顶部任意下拉菜单的虚线将会将该菜单提升到它自己的永久窗口中去。特别是Edit菜单,将其“靠”在桌面一角非常实用。Idle的调试器提供断点、步进和变量监视功能。图1PythonIDLE界面图三、实验项目名称及目的要求:实验项目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('PleaseinputaFibonacciSeriesuptoNumber:'))n=FibonacciUptoNumerfibs=[0,1]fornumberinrange(n):fibs.append(fibs[-2]+fibs[-1])2)设计删除一个list里面的重复元素程序:首先调用List.sort()对序列进行排序,然后调用last=List[-1]语句从后向前找出重复的元素,并逐个打印非重复的元素。此实验部分实现代码如下ifList:List.sort()last=List[-1]foriinrange(len(List)-2,-1,-1):iflast==List[i]:delList[i]else:last=List[i]printList4、实验步骤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,循环获取行数据的语句为foriinrange(nrows):printtable.row_values(i)。此实验部分实现代码如下#根据索引获取Excel表格中的数据defexcel_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=[]forrownuminrange(1,nrows):row=table.row_values(rownum)ifrow:app={}foriinrange(len(colnames)):app[colnames[i]]=row[i]list.append(app)returnlistdefexcel_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=[]forrownuminrange(1,nrows):row=table.row_values(rownum)ifrow:app={}foriinrange(len(colnames)):app[colnames[i]]=row[i]list.append(app)returnlist在该实验中,学生需用前述的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文件。此实验部分实现代码如下frompyExceleratorimport*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()forrowintables:printrowendtime=datetime.datetime.now()printendtime-starttimestarttime=datetime.datetime.now()tables=excel_table_byname()forrowintables:printrowendtime=datetime.datetime.now()printendtime-starttime在该实验中,学生需用前述的CPU时间控制语句实现计算某一段代码的运算时间,并在此基础上,比较并分析两种Excel数据读取方法的性能。记录Python代码,并分析实验结果。4、实验步骤1)设计按名称和按索引读取Excel数据的程序分析实验要求按行打印Excel表中的数据记录程序代码记录并分析实验结果2)设计写入Excel数据的程序分析实验要求按行将数据写入Excel表中记录程序代码记录并分析实验结果3)设计计算程序运行时间的程序分析实验要求记录程序代码比较并分析实验结果总结,撰写实验报告实验项目3使用Python实现网络爬虫算法1、实验目的1)强化Python程序的设计和编程能力2)学习网络爬虫算法的原理3)学习使用Python语言实现网络爬虫算法2、实验内容1)理解网络爬虫算法的原理,并设计使用Python语言获取网页数据的程序。2)用Python语言中的threading和GetUrl模块对网站中URL进行搜集。3、实验原理1)爬虫算法原理:网络爬虫(又被称为网页蜘蛛,网络机器人,网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。很多搜索引擎都使用爬虫提供最新的数据,搜索引擎利用用户访问过页面的一个副本进行索引,以提供快速的访问。网络爬虫也可以在web上用来自动执行一些任务,例如检查链接,确认html代码;也可以用来抓取网页上某种特定类型信息,例如抓取电子邮件地址。本实验中使用的网络爬虫算法是广度优先搜索(BFS)。广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种应用是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。2)Python语句在某一个网页上获取数据时,首先要分析网页的HTML源代码,我们以淘宝网页中的商品分类()为例,获取所有一级类别和二级类别的标题。本实验中要调用urllib2和sgmllib.SGMLParser模块,并使用语句content=urllib2.ur
本文标题:《基于Python语言的网络数据挖掘》实验指导书2014
链接地址:https://www.777doc.com/doc-2833103 .html