Python人工智能编程基础(微课版)课件 项目11 数据运算操作_第1页
Python人工智能编程基础(微课版)课件 项目11 数据运算操作_第2页
Python人工智能编程基础(微课版)课件 项目11 数据运算操作_第3页
Python人工智能编程基础(微课版)课件 项目11 数据运算操作_第4页
Python人工智能编程基础(微课版)课件 项目11 数据运算操作_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python人工智能编程基础项目十一

数据运算操作主讲教师:XXX课前导入假设您是一名气象学家,负责分析一周内的气温数据以预测未来的气候趋势。您需要创建一个存储每日最高气温的科学计算数组,并根据每天温度的变化对气温数据集合进行修改,以满足后续分析和可视化的需求。这些工作都离不开NumPy和Pandas库,本项目将详细介绍相关数据运算操作。重难点重点:难点:掌握NumPy数组的修改操作、基本运算及广播机制;掌握Pandas基本数据结构及数据处理、分析方法理解NumPy广播机制的规则及应用;灵活运用Pandas处理缺失值、重复值等数据问题CONTENTS修改数据集合数组运算操作Pandas基本操作Pandas数据处理目录CONTENTS01020304parTONE修改数据集合01知识储备:数据添加与删除1np.append():数据添加

格式为np.append(arr,values,axis=None)。参数:arr为目标数组,values为要附加的值或数组,axis指定附加的轴,为None时数组展平后附加。importnumpyasnparr=np.array([1,2,3])new_arr=np.append(arr,[4,5,6])print(new_arr)#输出[123456]例:知识储备:数据添加与删除1np.delete():数据删除

格式为np.delete(arr,obj,axis=None)。参数:arr为目标数组,obj为要删除的索引或切片,axis指定删除的轴,为None时数组展平后删除。arr=np.array([1,2,3,4,5,6])new_arr=np.delete(arr,2)print(new_arr)#输出[12456]例:知识储备:修改数据形状1reshape方法

形状改变但数据和原数组相同,新形状元素数量需与原数组一致arr=np.array([1,2,3,4,5,6])reshaped_arr=arr.reshape((2,3))print(reshaped_arr)#输出[[123][456]]例:知识储备:修改数据形状1resize方法

可改变数组形状和大小,新大小大于原大小时插入重复元素,小于时截取部分arr=np.array([1,2,3,4,5,6])resized_arr2=np.resize(arr,(3,3))print(resized_arr2)#输出[[123][456][123]]例:知识储备:修改数据形状1设置shape属性直接修改原始数组形状,新形状元素数量需与原数组一致arr=np.array([1,2,3,4,5,6])arr.shape=(2,3)print(arr)#输出[[123][456]]例:知识储备:数组展平1flatten()和ravel():均将多维数组展平为一维数组,不修改原始数组arr_2d=np.array([[1,2,3],[4,5,6]])flattened_arr=arr_2d.flatten()raveled_arr=arr_2d.ravel()print(flattened_arr)#输出[123456]print(raveled_arr)#输出[123456]例:知识储备:数组分割1函数名称说明hsplit对数组进行横向分割vsplit对数组进行纵向分割split对数组进行横向和纵向分割例:arr=np.arange(12).reshape(3,4)split_arr=np.hsplit(arr,2)#水平分割split_arr_v=np.vsplit(arr,3)#垂直分割知识储备:数组组合1函数名称说明hstack实现数组的横向组合vstack实现数组的纵向组合concatenate通过参数axis实现纵向或横向组合例:arr1=np.array([1,2,3])arr2=np.array([4,5,6])result_hstack=np.hstack((arr1,arr2))#水平组合result_vstack=np.vstack((arr1,arr2))#垂直组合任务实操——创建数组1任务实操数组的合并与展平此任务通过介绍使用Numpy实现数组的创建和操作,帮助大家更好地应用Numpy解决实际问题。【例11.1】根据前面学过的NumPy数组创建的方法,创建包含1到10的奇数和偶数的数组,并将两个数组沿垂直方向合并为1个数组,然后将合并的数组进行展平。具体编程示例:importnumpyasnpodd_array=np.arange(1,11,2)even_array=np.arange(2,11,2)result_vstack=np.vstack((odd_array,even_array))flattened_arr=result_vstack.flatten()print(flattened_arr)#输出任务实操——数组形状改变1【例11.2】使用NumPy创建1~9的数组,然后将其形状改为3×3。具体编程示例:arr=np.arange(1,10)arr_2d=arr.reshape(3,3)print("创建的数组列表为:\n",arr)print("修改成二维的数组列表:\n",arr_2d)运行程序,输出结果如下:创建的数组列表为:

[123456789]修改成二维的数组列表:

[[123][456][789]]任务巩固——创建特殊数组1任务巩固数组维度变换与合并请使用NumPy创建两个数组,一个是:[9,8,7,6,5,4,3,2,1],另一个是:[6,6,6,6,6,6],将第一个数组形状改为3×3,第二个数组形状改为2×3。然后沿水平方向合并两个数组为新数组,并打印结果。输入示例:importnumpyasnparr1=np.array([9,8,7,6,5,4,3,2,1]).reshape(3,3)arr2=np.array([6,6,6,6,6,6]).reshape(2,3)merged_arr=np.hstack((arr1,arr2[:3,:]))#取arr2前3行与arr1合并print(merged_arr)parTTWO数组运算操作02知识储备:数组运算2NumPy提供了丰富的数组运算操作,常见的有算术运算、数学运算、比较运算和逻辑运算等函数名称运算符说明add(x,y)+计算数组x和数组y中各元素的和substract(x,y)-计算数组x和数组y中各元素的差multiply(x,y)*计算数组x和数组y中各元素的积divide(x,y)/计算数组x和数组y中各元素的商power(x,y)**计算数组x和数组y中各元素的幂abs(x)

计算数组x中各元素的绝对值exp(x)

计算自然数E的数组x中各元素的次幂log(x)

计算数组x中各元素的对数sqrt(x)

计算数组x中各元素的平方根equal(x,y)

判断数组x和y中各元素是否相等知识储备:广播运算2广播运算的规则: 1.让所有输入数组向shape最长的数组看齐,不足部分在前面加1补齐。 2.输出数组shape是输入数组各轴最大值。 3.输入数组某轴与输出对应轴长度相同或为1时可计算,否则出错。 4.输入数组某轴长度为1时,沿该轴运算使用第一组值scalar=5arr=np.array([1,2,3])print(scalar*arr)#输出[51015]arr1=np.array([[1,2,3],[4,5,6]])arr2=np.array([10,20,30])print(arr1+arr2)#输出[[112233][142536]]例:任务实操——数组运算2任务实操数组运算此任务通过介绍使用NumPy数组的运算操作及广播机制,帮助同学对数组的运算操作和广播规则有更好地理解和应用。【例10.3】假设有两个NumPy数组,要求计算两个数组的元素级别的和;计算两个数组的元素级别的差;计算两个数组的元素级别的乘积。提示:首先创建两个数组,然后使用对应的函数实现数组运算。任务实操——天气数据管理2具体编程示例:arr1=np.array([1,2,3,4,5])arr2=np.array([5,4,3,2,1])result_add=np.add(arr1,arr2)result_subtraction=np.subtract(arr1,arr2)result_multiplication=np.multiply(arr1,arr2)print("数组元素级别加法结果:",result_add)print("数组元素级别减法结果:",result_subtraction)print("数组元素级别乘法结果:",result_multiplication)任务巩固——广播运算2任务巩固广播运算此任务要求使用Numpy数组的广播机制,实现标量和数组以及数组与数组的广播运算,可以按照以下步骤进行。①首先随机创建一个二维数组,一个一维数组,和一个标量。②使用广播将标量与数组相乘、相加,同时将数组的每一行与标量相除。③使用广播将一维数组与二维数据进行加减运算。④输出运行结果。parTTHREEPandas基本操作03知识储备:Series对象3Series对象 Pandas中的Series是一种一维数组结构,可以容纳任意数据类型。每个Series对象都由两个主要部分组成:索引(Index)和数据(Data)。索引用于标识数据,类似于字典中的键,而数据则是一维数组。数组:s=pd.Series(np.arange(5),index=['a','b','c','d','e'])字典:s=pd.Series({'a':0,'b':1,'c':2,'d':3,'e':4})列表:s=pd.Series([0,1,2,3,4],index=['a','b','c','d','e'])例:DataFrame对象:

Pandas中的DataFrame是一个二维标记数据结构,类似于电子表格或SQL表。DataFrame由行和列组成,每列可以包含不同的数据类型。它可以看作由Series组成的dict,每个Series看作DataFrame的一个列。它是Pandas中最常用的数据结构之一,提供了丰富的功能来处理和分析数据。知识储备:DataFrame对象3data_dict={'Name':['Cao','Fu','Lu'],'Age':[27,29,30], 'City':['WenZhou','HangZhou','ShangHai']}df_dict=pd.DataFrame(data_dict)#使用字典创建DataFrame#使用列表创建DataFramedata_list=[['Cao',27,'WenZhou'],['Fu',29,'HangZhou'],['Lu',30,'ShangHai']]df_list=pd.DataFrame(data_list,columns=['Name','Age','City’])#使用数组创建DataFramedata_array=np.array([['Cao',27,''WenZhou''],['Fu',29,'HangZhou'],['Lu',30,'ShangHai']])df_array=pd.DataFrame(data_array,columns=['Name','Age','City’])例:Pandas中DataFrame和Series类型都有一些常用的属性,这些属性提供了关于数据结构的基本信息,利用这些属性提供的功能可以用来处理和分析数据。知识储备:常用属性3属性说明values以数组形式返回Series对象的所有元素index返回Series对象的索引dtype返回Series对象的数据类型shape返回Series对象的形状nbytes返回Series对象的字节数ndim返回Series对象的维度size返回Series对象内的元素个数T返回Series对象的转置任务实操——简单的Pandas数据操作3任务实操简单的Pandas数据操作【例11.4】编写一个Python程序,使用字典或列表创建一个包含学生信息的DataFrame,至少包含5名学生的信息,信息包括学生姓名(Name)、年龄(Age)、成绩(Grade)。importpandasaspd#创建学生信息DataFramestudents_data={'Name':['Alice','Bob','Charlie','David','Emma'], 'Age':[20,22,21,23,20],'Grade':[85,90,78,92,88]}students_df=pd.DataFrame(students_data)print("学生信息DataFrame:")print(students_df)任务巩固——DataFrame数据操作及属性3任务巩固DataFrame数据操作及属性此任务要求使用Pands创建一个二维数组,实现学生成绩的记录与分析,可以按照以下步骤进行。①首先创建一个如下所示的DataFrame数组,模拟班级学生的成绩信息。

NameMathEnglishScience0Alice8575901Bob9080852Charlie7892883David9288944Emma889587②输出DataFrame的形状;输出DataFrame的列名;输出学生的姓名列。③输出创建的数组及相应的属性结果parTFOURPandas数据处理04知识储备:数据访问4Series访问

通过索引位置(如s[0])或索引名称(如s['a’])。DataFrame访问

列:df['Math']、df[['Math','English’]]

行和列:df.loc[row_label,column_label](标签)或 df.iloc[row_index,column_index](位置)

条件:df[(df['Math']>=85)&(df['English']>=85)]。在Pandas中,数据处理是数据分析过程中至关重要的一部分。常见的数据处理方法包括缺失值处理、重复值处理和异常值处理。知识储备:数据处理3函数说明df.dropna()删除缺失值df.fillna()用一个值来替换缺失值df.Interpolate()插值法填充缺失值df.drop_duplicates()去除重复数据统计分析是了解数据最常用的手段,在NumPy中提供了丰富的统计函数,用于对数据进行统计分析,Pandas库基于NumPy库,因此,NumPy中的统计函数大都适用于Pandas中的数据统计分析。知识储备:数据统计3函数名称功能说明sum求和mean平均值min最小值max最大值median中位数var方差std标准差cov协方差sem标准误差mode众数skew样本偏度kurt样本峰度quantile四分位数count非空值数目mad平均绝对离差任务实操——成绩统计分析4任务实操成绩统计分析本任务主要练习对学生成绩的统计分析。【例11.5】假设班级有三个学生A(男),B(女),C(女),每个学生的语文、数学、英语成绩记录在数组中:[[89,85,92],[92,81,76],[90,80,83]],数组的每一行表示一个学生的三科成绩,下面请对该成绩进行简单的数据分析。要求:(1)创建一个DataFrame记录学生成绩信息,包含5列,分别为姓名,性别,各科成绩;(2)计算语文、数学和英语成绩的平均分、最大值和最小值;(3)计算三个人的成绩总分,并打印最高的总分数;(4)计算每个学生的平均成绩,同时找出每个学生成绩的最高分和最低分。任务实操——成绩统计分析2具体编程示例:scores=np.array([[89,85,92],[92,81,76],[90,80,83]])#成绩数据#创建DataFrame记录学生成绩信息df_grades=pd.DataFrame({'姓名':['A','B','C'],'性别':=['男','女','女'],

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论