收藏 分享(赏)

人工智能PPT第4章 Python数据处理 .pptx

上传人:bubibi 文档编号:18831087 上传时间:2023-11-02 格式:PPTX 页数:94 大小:2.09MB
下载 相关 举报
人工智能PPT第4章 Python数据处理 .pptx_第1页
第1页 / 共94页
人工智能PPT第4章 Python数据处理 .pptx_第2页
第2页 / 共94页
人工智能PPT第4章 Python数据处理 .pptx_第3页
第3页 / 共94页
人工智能PPT第4章 Python数据处理 .pptx_第4页
第4页 / 共94页
人工智能PPT第4章 Python数据处理 .pptx_第5页
第5页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第4章 Python数据处理1.文件操作2.数据格式化3.常用标准库4.科学计算5.数据获取6.数据分析7.数据可视化8.与AI相关的库第4章 Python数据处理4.1 文件操作文件操作文件操作v文件的理解v文件的打开和关闭v文件的读写文件的文件的理解(理解(1)v文件是数据存储的一种形式v文件是存储在辅助存储器上的数据序列v文件是数据的抽象和集合l文件分类(按照展现方式)p文本文件 p二进制文件l本质上,所有文件都是二进制形式存储文件的文件的理解(理解(2)v文本文件由单一特定编码组成的文件,如UTF-8编码由于存在编码,也被看成是存储着的长字符串例如:.txt文件、.py文件等v二进制文

2、件直接由比特0和1组成,没有统一字符编码二进制0和1的组织结构例如:.png文件、.avi文件等文件的文件的理解(理解(3)v举例:“人工智能正改变未来”v文本形式人工智能正改变未来v二进制形式 bxC8xCBxB9xA4xD6xC7xC4xDCxD5xFDxB8xC4xB1xE4xCExB4xC0 xB4文件的处理过程文件的处理过程v文件处理的步骤:打开-操作-关闭a=open()a.close()读文件写文件文件的 存储状态文件的 占用状态文件的打开和关闭文件的打开和关闭v文件打开形式=open(,)文件句柄文件路径和名称源文件同目录可省路径文本or二进制 读or 写v文件关闭形式.clo

3、se()文件句柄文件的打开模式文件的打开模式文件的打开模式文件的打开模式描述描述r只读模式,默认值,如果文件不存在,返回FileNotFoundErrorw覆盖写模式,文件不存在则创建,存在则完全覆盖x创建写模式,文件不存在则创建,存在则返回FileExistsErrora追加写模式,文件不存在则创建,存在则在文件最后追加内容b二进制文件模式t文本文件模式,默认值+与r、w、x、a连用,同时以读写模式打开文件的使用文件的使用v举例#文本形式打开文件#二进制形式打开文件文件的读取文件的读取操作方法操作方法描述描述 .read(size=-1)读入全部内容,如果给出参数,读入前size长度s=f.

4、read(2)人工.readline(size=-1)读入一行内容,如果给出参数,读入该行前size长度s=f.readline()人工智能正在改变生活。.readlines(hint=-1)读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行s=f.readlines()人工智能正在改变生活。文件的全文本遍历文件的全文本遍历v方法一一次读入,统一处理v方法二p按数量读入,分别处理文件的按行遍历文件的按行遍历v方法一一次读入,分行处理v方法二分行读入,逐行处理文件的写入(文件的写入(1)操作方法操作方法描述描述.write(s)向文件写入一个字符串或字节流f.write(幸福都

5、是奋斗出来的!).writelines(lines)将一个元素全为字符串的列表写入文件ls=亚洲,欧洲,非洲f.writelines(ls)亚国欧洲非洲.seek(offset)改变当前文件操作指针的位置,offset含义如下:0 文件开头;1 当前位置;2 文件结尾f.seek(0)#回到文件开头文件的写入(文件的写入(2)v举例写一个字符串列表到文件没有任何输出第4章 Python数据处理4.2 数据格式数据格式化数据格式化v数据的维度v一维数据格式化v二维数据格式化v高维数据格式化数据的维度数据的维度v维度:一组数据的组织形式v分类一维数据二维数据多维数据高维数据一维数据一维数据l由一组

6、有序或无序数据构成,采用线性方式组织l对应列表、集合等概念1,1,2,3,5,8,13,21,34 90,87,65,78,98,100,54,82,76,85 二二维数据维数据l由多个一维数据构成,是一维数据的组合形式l表格是典型的二维数据l其中,表头是二维数据的一部分序号学号姓名姓名高数高数英英语程序程序设计120191001张三988894220191002李四879076320191003王五798487420191004赵六646875多维数据多维数据l由一维或二维数据在新维度上扩展形成2020序号序号学号学号姓名姓名高数高数英语英语 程序设计程序设计120191001张三76908

7、9220191002李四838874320191003王五879092420191004赵六7898872019时间维度序号序号学号学号姓名姓名高数高数英语英语 程序设计程序设计120191001张三988894220191002李四879076320191003王五798487420191004赵六646875高维数据高维数据l利用最基本的二元关系展示数据间的复杂结构键值对一一维数据格式化维数据格式化l如果数据间有序:使用列表类型pls=3.1,3.3,3.6,3.8l如果数据间无序:使用集合类型pst=3.1,3.3,3.6,3.8for循环遍历数据,对每个数据进行处理一维数据一维数据存储

8、存储l存储方式一:空格分隔p使用一个或多个空格分隔进行存储,不换行p缺点:数据中不能存在空格l存储方式二:逗号分隔p使用英文半角逗号分隔数据进行存储,不换行p缺点:数据中不能有英文逗号亚洲 欧洲 北美洲 南美洲 南极洲 非洲 大洋洲l存储方式三:其他方式p使用其他符号或符号组合分隔,建议采用特殊符号p缺点:需要根据数据特点定义,通用性较差亚洲,欧洲,北美洲,南美洲,南极洲,非洲,大洋洲亚洲$欧洲$北美洲$南美洲$南极洲$非洲$大洋洲一一维数据处理维数据处理l从空格分隔的文件中读入数据l从特殊符号分隔的文件中读入数据txt=open(fname).read()ls=txt.split()f.cl

9、ose()txt=open(fname).read()ls=txt.split($)f.close()l采用空格分隔方式将数据写入文件ls=亚洲,欧洲,非洲f=open(fname,w)f.write(.join(ls)f.close()l采用特殊分隔方式将数据写入文件ls=亚洲,欧洲,非洲f=open(fname,w)f.write($.join(ls)f.close()二维数据格式化(二维数据格式化(1)v二维列表vCSV数据存储格式CSV:Comma-SeparatedValues国际通用的一二维数据存储格式,一般.csv扩展名每行一个一维数据,采用逗号分隔,无空行序号,学号,姓名,高数

10、,英语,程序设计1,20191001,张三,98,88,94 2,20191002,李四,87,90,76 3,20191003,王五,79,84,874,20191004,赵六,64,68,75序号序号学号学号姓名姓名高数高数英语英语 程序设计程序设计120191001张三988894220191002李四879076320191003王五798487420191004赵六646875二维数据格式化二维数据格式化(2)vCSV数据存储格式如果某个元素缺失,逗号仍要保留二维数据的表头可以作为数据存储,也可以另行存储逗号为英文半角逗号,逗号与数据之间无额外空格l按行存或者按列存都可以,具体由程序

11、决定l一般索引习惯:lsrowcolumn,先行后列l根据一般习惯,外层列表每个元素是一行,按行存二维数据二维数据处理处理从CSV格式的文件中读入数据l将数据写入CSV格式的文件l采用二层循环高高维数据格式化维数据格式化v键值对是高维数据的特征vJSON格式对高维数据进行表达和存储vJSON(JavaScript Object Notation)是一种轻量级的数据交换格式数据保存在键值对中;键值对之间由逗号分隔;大括号用于保存键值对数据组成的对象;方括号用于保存键值对数据组成的数组。key:value第4章 Python数据处理4.3 常用标准库常用标准库常用标准库vmathvrandomvj

12、sonmath库库v内置数学类函数库4个数学常数数值表示函数(16个)幂对数函数(8个)三角对数函数(16个)高等特殊函数(4个)math.pi math.e math.inf math.nan fabs,fmod,fsum,ceil,floor pow,exp,sqrt,log sin,cos,tan,asin erf,erfc,gamma,lgamma math库的使用库的使用v(1)直接引用math库importmathmath.sqrt(9)3.0v(2)标明要调用math库中的特定函数frommathimportfabsfabs(-125)125.0v(3)标明要调用math库中的特

13、定函数frommathimport*floor(10.6)运行结果:10random库库函数函数描述描述seed(a=none)初始化随机数种子,默认值为当前系统时间random()生成一个0.0,1.0)之间的随机小数randint(a,b)生成一个a,b之间的整数getrandbit(k)生成一个k比特长度的随机整数randrange(start,stop,step)生成一个start,stop)之间以step为步数的随机整数uniform(a,b)生成一个a,b之间的随机小数choice(seq)从序列类型,例如列表中随机返回一个元素shuffle(seq)将序列类型中的元素随机排列,返

14、回打乱后的序列sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回vrandom库是产生并使用随机数的Python标准库vrandom库采用梅森旋转算法生成随机序列中元素。v计算机产生的随机数遵循固定算法,产生的随机数也称伪随机数。4.3.3 常用标准库常用标准库json库库v处理JSON格式的Python标准库v操作类函数和解析类函数vdumps()和loads()分别对应编码和解码功能json库常用函数(库常用函数(1)函数函数描述描述json.dumps(obj,sort_keys=False,indent=None)将Python的数据类型转换为JSON格式,编码过

15、程json.loads(string)将JSON格式字符串转换为Python的数据类型,解码过程json.dump(obj,fp,sort_keys=False,indent=None)与dumps()功能一致,输出到文件fpjson.load(fp)与loads()功能一致,从文件fp读入json库常用函数(库常用函数(2)v举例:将字典dic转换为JSON格式字符串json库常用函数(库常用函数(2)v举例:把JSON格式字符转换为Python对象格式4.3.4 常用标准库常用标准库csv库库vCSV(Comma Separated Values)格式是电子表格和数据库中最常见的输入、输出

16、文件格式。vcsv库实现了CSV格式表单数据的读写。提供了诸如“以兼容Excel的方式输出数据文件”或“读取Excel程序输出的数据文件”的功能reader和writer可用于读写序列化的数据读文件读文件readerv读文件函数读文件函数:csv.reader(csvfile,dialect=excel,*fmtparams)返回一个reader对象,该对象将逐行遍历csvfilecsv文件的每一行都读取为一个由字符串组成的列表。v例:调用csv库,读“rtest.csv”文件内容并显示写写文件文件writerv写文件函数写文件函数:csv.writer(csvfile,dialect=exc

17、el,*fmtparams)返回一个writer对象该对象负责将用户的数据在给定的文件类对象上转换为带分隔符的字符串v例:调用csv库,将列表ls写入到“wtest.csv”文件CSV和和JSON格式相互格式相互转换(转换(1)v例:CSV格式转换为JSON格式CSV和和JSON格式相互格式相互转换(转换(2)v例:JSON格式转换为CSV格式第4章 Python数据处理4.4 科学计算科学计算库科学计算库-NumPy(1)vNumPyNumericalPython是Python语言的一个扩展程序库支持大量的维度数组与矩阵运算importnumpyasnp科学计算库科学计算库-NumPy(2)

18、用于处理含有同种元素的多维数组运算的第三方库。最基础数据类型是由同种元素构成的多维数组(ndarray),简称“数组”。数组中所有元素的类型必须相同数组中元素可以用整数索引,序号从0开始。ndarray类型的维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。一维数组的秩为1,二维数组的秩为2,二维数组相当于由两个一维数组构成。常用属性(常用属性(1)属性属性描述描述ndarray.ndim数组轴的个数,也称作秩ndarray.shape数组在每个维度上大小的整数元组ndarray.size数组元素的总个数ndarray.dtype数组元素的数据类型,dytpe类型可以

19、用于创建数组中ndarray.itemsize数组中每个元素的字节大小ndarray.data包含实际数组元素的缓冲区地址ndarray.flat数组元素的迭代器常用函数常用函数函数函数描述描述np.array(x,y,z,dtype=int)从Python列表和元组创造数组np.arange(x,y,i)创建一个由x到y,以i为步长的数组np.linspace(x,y,n)创建一个由x到y,等分成n个元素的数组np.indices(m,n)创建一个m行n列的矩阵np.random.rand(m,n)创建一个m行n列的随机数组np.ones(m,n),dtype)创建一个m行n列全1的数组,d

20、type是数据类型np.empty(m,n),dtype)创建一个m行n列全0的数组,dtype是数据类型常用属性(常用属性(2)v举例ndarray形态操作形态操作方法(方法(1)方法方法描述描述ndarray.reshape(n,m)不改变数组ndarray,返回一个维度为(n,m)的数组ndarray.resize(new_shape)与reshape()作用相同,直接修改数组ndarrayndarray.swapaxes(ax1,ax2)将数组n个维度中任意两个维度进行调换ndarray.flatten()对数组进行降维,返回一个展开后的一维数组ndarray.ravel()作用同fl

21、atten()。但是返回数组的一个视图ndarray形态操作形态操作方法(方法(2)方法方法描述描述xi索引第i+1个元素x-i从后向前索引第i个元素xn:m默认步长为1,从前往后索引,不包含mx-m:-n默认步长为1,从后往前索引,结束位置为nxn,m,i指定 i 步长的由n到m的索引ndarray形态操作形态操作方法(方法(3)v举例算术运算算术运算函数函数函数函数描述描述np.add(x1,x2,y)y=x1+x2np.substract(x1,x2,y)y=x1 x2np.multiply(x1,x2,y)y=x1*x2np.divide(x1,x2,y)y=x1/x2np.floor

22、_divide(x1,x2,y)y=x1/x2(返回值取整)np.negative(x,y)y=-xnp.power(x1,x2,y)y=x1*x2np.remainder(x1,x2,y)y=x1%x2比较运算比较运算函数函数函数函数描述描述np.equal(x1,x2,y)y=x1=x2np.not_equal(x1,x2,y)y=x1!=x2np.less(x1,x2,y)y=x1 x2np.less_equal(x1,x2,y)y=x1 x2 np.greater_equal(x1,x2,y)y=x1=x2 np.where(conditionx,y)根据给出的条件判断输出x还是yv举

23、例其他其他运算函数运算函数函数函数描述描述np.abs(x)计算基于元素的整型、浮点或复数的绝对值np.sqrt(x)计算每个元素的平方根np.square(x)计算每个元素的平方np.sign(x)计算每个元素的符号:1(+),0,-1(-)np.ceil(x)计算大于或等于每个元素的最小值np.floorl(x1,x2,y)计算小于或等于每个元素的最大值np.rint(x,out)圆整,取每个元素为最近的整数,保留数据类型np.exp(x,out)计算每个元素指数值np.log(x),np.log10(x),np.log2(x)计算自然对数(e),基于10,2的对数第4章 Python数据

24、处理4.5 数据获取数据获取数据获取v数据获取是人工智能算法训练的基础。v数据获取途径通过人工收集一般将数据保存为文本文件或csv文件备用。通过互联网收集网络爬虫(遵守robots排除协议)urllib、Requests、BeautifulSoup4、Scrapy网络爬虫网络爬虫vRequests库实例:获取百度知道上的网页信息encoding是从http中的header中的charset字段中提取的编码方式try-except结构,保证在爬取出现异常时,程序不会崩溃网络爬虫网络爬虫vRequests库实例:获取当当网上的某本图书的信息运行结果:爬取失败什么原因?什么原因?网络爬虫网络爬虫vR

25、equests库实例:获取当当网上的某本书的信息运行结果:设置headers关键字,伪装浏览器成功网络爬虫网络爬虫v实例:爬取豆瓣电影排名前250名的电影信息,并将其保存到一个csv文件分析:使用Requests库获取豆瓣排名前250名的HTML页面信息。使用bs4库解析HTML页面,提取出其中的排名序号、电影标题、评分、推荐语、网址保存到csv文件第4章 Python数据处理4.6 数据分析数据分析数据分析vpandas是基于NumPy的一个开源库。v提供了高效操作大型数据集的工具,可用于解决数据分析问题。vpandas兼容所有Python的数据类型v支持两种数据结构:Series:一维数组

26、。与NumPy中的数组(array)、Python的列表(list)相似DataFrame:二维表格型数据结构。可理解为:Series的容器数据分析数据分析v实例 使用pandas库,读“stu.csv”文件,并显示前5行数据。运行结果:数据分析数据分析v实例 将城市名和区号写入csv文件。运行结果:第4章 Python数据处理4.7 数据可视化数据可视化数据可视化库库vmatplotlib库pyplot子库(子库(1)vmatplotlib.pyplot是绘制各类可视化图形的命令子库绘制折线图绘制多个子图绘制饼图pyplot子库(子库(1)plt.plot(x,y,format_string

27、,*kwargs)x X轴数据,列表或数组,可选y Y轴数据,列表或数组format_string:控制曲线的格式字符串,可选*kwargs:第二组或更多(x,y,format_string)当绘制多条曲线时,各条曲线的x不能省略v绘制折线图pyplot子库(子库(2)plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量v举例pyplot子库子库(3)plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点v举例绘制多条线绘制多条线v设置format_stringimportmatplotlib.pyplotaspltimportnump

28、yasnpa=np.arange(1,11)plt.plot(a,a*2,r-,a,a*3,bx,a,a*4,g*:,a,a*5,c-.)plt.show()format_string(1)vformat_string:控制曲线的格式字符串,可选由颜色字符、风格字符和标记字符组成颜颜色字符色字符说说明明颜颜色字符色字符说说明明b蓝色m洋红色g绿色y黄色r红色k黑色c青绿色cyanw白色#008000RGB某颜色0.8灰度值字符串风风格字符格字符说说明明实线破折线.点划线:虚线 无线条format_string(2)标记字符标记字符说明说明标记字符标记字符说明说明标记字符标记字符说明说明.点标记

29、1下花三角标记h竖六边形标记,像素标记(极小点)2上花三角标记H横六边形标记o实心圈标记3左花三角标记+十字标记v倒三角标记4右花三角标记xx标记上三角标记s实心方形标记D菱形标记右三角标记p实心五角标记d瘦菱形标记w=wordcloud.WordCloud(font_path=msyh.ttc)max_words显示最大单词数量,默认200stopwords不显示的单词列表backgroud_color指定词云的背景颜色,默认为黑色mask指定词云形状,默认为长方形,需要引入imageio库中的imread()函数wordcloud库库v实例:分析人工智能发展报告2020中关于“人工智能未来

30、技术研究方向”部分,生成词云importjiebaimportwordcloudstopwords=需要,采用,以及,可以,可能f=open(data.txt,r,encoding=utf-8)t=f.read()f.close()ls=jieba.lcut(t)txt=.join(ls)wc=wordcloud.WordCloud(width=1000,height=700,background_color=white,font_path=msyh.ttc,stopwords=stopwords)wc.generate(txt)wc.to_file(mywc.png)AI相关的框架或库相关的

31、框架或库v框架TensorFlowCaffeKerasv库Sci-kitLearnSci-kit LearnvScikit-learn(sklearn)是机器学习中常用的第三方模块v对常用的机器学习方法进行了封装,包括回归(Regression)、降维(DimensionalityReduction)、分类(Classfication)、聚类(Clustering)等方法。v特点简单高效的数据挖掘和数据分析工具让每个人能够在复杂环境中重复使用建立NumPy、Scipy、MatPlotLib之上vhttps:/scikit-learn.org/stable/v文件操作读写v数据格式化数据维度各维度数据的表示和处理v库常用标准库NumPy库数据获取(网络爬虫)数据分析(pandas库)可视化AI相关的库谢谢!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 旅游攻略 > 广东广西

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报