必修1专题七大数据处理与应用 课件(共58张PPT)2026年浙江省高考选考信息技术总复习

资源下载
  1. 二一教育资源

必修1专题七大数据处理与应用 课件(共58张PPT)2026年浙江省高考选考信息技术总复习

资源简介

(共58张PPT)
专题七 大数据
处理与应用
思维导图
归纳提炼
一、大数据处理的基本思想与架构
1.大数据处理的基本思想
大数据处理的基本思想是分治思想。分治,就是把一个复杂的问题分成两个或更多相同或相似的子问题,找到求这几个子问题的解法后,再找出合适的方法把它们组合成求整个问题的解法。如果这些子问题还难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。
2.大数据处理类型和架构
数据类型和特征 处理方式和架构 应用场景
静态数据:大容量静态数据集 批处理计算 (Hadoop、Spark等) 适合处理对时间要求不高的大规模数据集
流数据:不间断地、持续地到达的实时数据 流计算 (Storm、Heron等) 对通过系统传输的每个数据项执行操作。比如根据交通路况实时更新导航线路
图数据:由数十亿的节点和数千亿的边组成的错综复杂的数据形式 图计算 (Pregel、GraphX等) 如社交网络、道路交通、传染病的传播路径等
二、利用pandas模块处理数据
1.Python数据处理常用的扩展模块有:
numpy Python中做科学计算的基础库,主要提供科学计算中常用的随机数、数组运算等基础函数
scipy 基于numpy构建的一个模块,增强了在高等数学、信号处理、图像处理、统计等方面的处理能力
pandas 基于numpy实现,主要用于数据的处理和分析。它提供了大量处理数据的函数和方法,能方便地操作大型数据集
matplotlib 用以绘制二维图形的Python模块
2.Series(系列)
(1)Series是一种一维的数据结构,包含一个数组的数据和一个与数据关联的索引(index)。
(2)Series对象的常用属性
属性 说明
index Series的下标索引,其值默认是从0起递增的整数,也可以指定索引内容,如index=["a","b","c"]
values 存放Series值的一个数组
①创建Series对象
import pandas as pd
a=["王小明",175,18]
s1=pd.Series(a)
■也可以表示为:
import pandas as pd
s1=pd.Series(["王小明",175,18])
输出s1对象如下图所示:
0    王小明
1 175
2 18
■还可以指定索引
import pandas as pd
a=["王小明",175,18]
s2=pd.Series(a,index=["姓名","身高","年龄"])
输出s2对象如下图所示:
姓名    王小明
身高 175
年龄 18
②修改s2对象中的身高为180
s2[1]=180 或 s2["身高"]=180
3.DataFrame(数据框)
(1)DataFrame是一种二维的数据结构,由1个索引列(index)和若干个数据列组成,每个数据列可以是不同的类型。DataFrame可以看作是共享同一个index的Series的集合。
(2)DataFrame对象常用属性
属性 说明
index DataFrame的行索引
columns 存放各列的列标题
values 存放值的二维数据
T 行列转置
(3)创建DataFrame对象的方法
①用一个相等长度的列表或字典来创建。
import pandas as pd
data1={"姓名":["王小明","李思怡","汤世光"],"性别":["男","女","男"],"年龄":
[18,16,20]}
df1=pd.DataFrame(data1,columns=["姓名","年龄","性别"])
#columns用于设定df1对象中数据列的顺序,默认生成从0起递增的索引列
输出df1对象如下图所示:
姓名    年龄   性别
0 王小明 18 男
1 李思怡 16 女
2 汤世光 20 男
②读取二维数据文件创建。
使用read_excel()函数,读取Excel文件或csv文件创建DataFrame对象,也可以使用to_excel()函数,创建Excel文件保存数据。
import pandas as pd
df2=pd.read_excel("test.xlsx")
df3=pd.read_csv("test.csv")
③检索DataFrame对象的数据列
■属性检索列:如print(df1.姓名)。
■字典记法检索列:如print(df1["姓名"])。
④检索行
■检索df1对象中所有的男学生:print(df1[df1["性别"]=="男"])或print(df1[df1.性别=="男"])。
■检索df1对象中年龄超过16岁的学生:print(df1[df1["年龄"]>16])或print(df1[df1.年龄>16])。
⑤修改数据
■通过属性修改列的值,如:df1.年龄=[20,18,19]。
■通过字典记法修改列的值,如:df1["年龄"]=[20,18,19]。
■使用at[]方法根据行和列标签选取单个值。
将df1对象中第二行的“年龄”列的值修改为17:df1.at[1,"年龄"]=17。
(4)DataFrame常用函数
函数 说明
count() 返回非空(NaN)数据项的数量
sum()、mean() 求和、求平均值,通过axis=0/1确定行列
max()、min() 返回最大、最小值
describe() 返回各列的基本描述统计值,包含计数、平均数、标准差、最大值、最小值及4分位差
head()、tail() 返回DataFrame的前n个、后n个数据记录
groupby(列标题, [as_index=False]) (1)对各列或各行中的数据进行分组
(2)as_index=False表示不生成索引列,缺省则默认为生成索引列
sort_values(列标题, [axis=0/1], [ascending=True/False]) (1)通过选项axis=0/1确定排序的轴向, axis默认为0,表示纵向排序
(2)通过选项ascending=True/False确定升/降序,默认为True,升序排序
(3)不会改变原有df对象中的数据位置
drop() 删除数据,通过axis=0/1确定行列
append() 在指定元素的结尾插入内容
insert() 在指定位置插入列
rename() 修改列名或者索引
concat() 合并DataFrame对象
set_value() 根据行标签和列标签设置单个值
plot() 绘图
三、利用matplotlib模块绘图
1.在Python中引入matplotlib的pyplot子库的方法为:import matplotlib.
pyplot as plt。
2.常用绘图函数
函数 功能
figure() 创建一个新的图表对象,并设置为当前绘图对象
plot() 绘制线形图
bar() 绘制垂直柱形图
barh() 绘制水平柱形图
scatter() 绘制散点图
title() 设置图表的标题
xlim()、ylim() 设置X、Y轴的取值范围
xlabel()、ylabel() 设置X、Y轴的标签
legend() 显示图例
show() 显示创建的所有绘图对象
四、文本数据处理
1.文本数据处理是大数据处理的重要分支之一,目的是从大规模的文本数据中提取出符合需要的、感兴趣的和隐藏的信息。
2.文本数据处理的应用
目前,文本数据处理主要应用在搜索引擎、情报分析、自动摘要、自动校对、论文查重、文本分类、垃圾邮件过滤、机器翻译、自动应答等方面。
3.典型的文本处理过程主要包括:分词、特征提取、数据分析、结果呈现等。
(1)中文分词:将连续的字序列按照一定的规范重新组合成词序列的过程,也就是将一个汉字序列切分成一个一个单独的词。
(2)特征提取:一般采用的方式为根据专家的知识挑选有价值的特征,或者用数学建模的方法构造评估函数自动选取特征等。
4.在中文文本分析中可以采用字、词或短语作为表示文本的特征项。目前,大多数中文文本分析中都采用词作为特征项,这种词称作特征词。
5.常见的分词系统
常见的分词系统有:jieba分词、IKAnalyzer、NLPIR、语言云、BosonNLP。
6.常用的中文分词算法分为三类:基于词典的分词方法、基于统计的分词方法、基于规则的分词方法。
(1)基于词典的分词方法:也称作基于字符匹配的分词方法,即在分析句子时与词典中的词语进行对比,词典中出现的就划分为词。
(2)基于统计的分词方法:根据上下文中相邻字出现的频率统计,同时出现的次数越高就越可能组成一个词。
(3)基于规则的分词方法:通过让计算机模拟人的理解方式,根据大量的现有资料和规则进行学习,达到对文字进行分词的效果。
7.文本数据分析与应用
(1)标签云:它是文本可视化的一种方式,用词频表现文本特征,将关键词按照一定的顺序和规律排列,并以文字大小的形式代表词语的重要性。
(2)文本情感分析:通过计算机技术对文本的主观性、观点、情绪、极性进行挖掘和分析,对文本的情感倾向做出分类判断。
五、数据可视化
1.数据可视化是将数据以图形图像等形式表示,直接呈现数据中蕴含信息的处理过程。
2.可视化的作用
(1)快捷观察与追踪数据。
(2)实时分析数据。
(3)增强数据的解释力与吸引力。
3.可视化的基本方法
(1)有关时间趋势的可视化,可用柱形图、折线图展示。
(2)有关比例的可视化,可用饼图、环形图(面包圈图)展示。
(3)有关关系的可视化,可用散点图、气泡图展示。
(4)有关差异的可视化,可用雷达图展示。
(5)有关空间关系的可视化,可用不同颜色或图表直接表现在地图上进行展示。
4.可视化的工具
主要用于数据可视化的工具有大数据魔镜、Gephi、Tableau等,也可以使用Python、R等计算机语言编写程序实现数据的可视化。
此外,还有一些优秀的可视化工具库,如基于JavaScript的D3.js、Highcharts、Google Charts等,基于Python的matplotlib等。
5.可视化的典型案例
(1)风、气象、海洋状况的全球地图。
(2)编程语言之间的影响力关系图。
(3)“双十一”全网销售直播图。
(4)航班飞行实时跟踪地图。
(5)微博热词趋势图。
六、大数据典型应用
1.智能交通
(1)交通信息服务系统。
(2)交通管理系统。
(3)电子收费系统。
2.电子商务
(1)精准营销。
(2)供应链管理。
(3)智能网站。
典型例题
[例1]下列应用中涉及流数据处理的是(   )
A.分析上一年的铁路客流数据
B.统计上个月的电影票房数据
C.查询明天的火车车次及车票情况
D.查询历史电子支付账单
C
解析:流数据主要是指不间断地、持续地到达的实时数据,因此答案为C。
[例2]某DataFrame对象df1中包含xh、xm、class、xb等多个数据列和100个数据行,下列语句中能读取df对象中“xm”数据列中所有数据的是(   )
A.df1.columns B.df1.head()
C.df1[1:10] D.df1['xm']
D
解析:df1.columns的功能是查看df1对象中的列标题,因此A选项错误;
df1.head()的功能是查看df1对象中的前5行数据,因此B选项错误;
df1[1··10] 的功能是查看df1对象中的第1行~第9行的数据,因此C选项错误;
df1['xm'] 的功能是查看df1对象中“xm”数据列中所有数据,因此答案为D。
[例3]有如下程序段:
import pandas as pd
data={"姓名":["李刚","沈玉","王红","张明明","陈光耀"],
"xb":["男","女","女","女","男"],"入学成绩":[580,615,596,603,588]}
df1=pd.DataFrame(data)
print(df1)
程序段执行后,输出的结果为(   )
D
A. 0   李刚  男   580 1 沈玉 女 615 2 王红 女 596 3 张明明 女 603 4 陈光耀 男 588 B.
李刚  男   580
沈玉 女 615
王红 女 596
张明明 女 603
陈光耀 男 588
C. 姓名  xb  入学成绩 李刚 男 580 沈玉 女 615 王红 女 596 张明明 女 603 陈光耀 男 588 D.
    姓名  xb  入学成绩
0 李刚 男 580
1 沈玉 女 615
2 王红 女 596
3 张明明 女 603
4 陈光耀 男 588
解析:本题主要考查的是pandas的DataFrame数据结构。对象df1是由三个数据列和1个索引列组成,列标题分别为姓名、xb和入学成绩,因此答案为D。
[例4]某DataFrame对象df1,包含“编号”“姓名”“班级”“100米成绩”等数据列。下列语句中,能将df1对象中的数据以“100米成绩”为关键字降序排序的是
(   )
A.df1.sort_index(axis=1,ascending=True)
B.df1.sort_values("100米成绩",ascending=True)
C.df1.sort_values("100米成绩",ascending=True,inplace=True)
D.df1.sort_values("100米成绩",ascending=False,inplace=True)
D
解析:本题主要考查的是数据排序。ascending=False为降序,参数inplace=True表示排序结果将替换df1中数据,因此答案为D。
[例5]某DataFrame对象df1中包含“准考证号”“姓名”“班级”“语文”“数学”
“英语”“技术”等多个数据列和700个数据行,下列语句中能筛选出所有“技
术”成绩为100的学生信息的是(   )
A.print(df1['技术'==100])
B.print(df1[df1['技术==100']])
C.print(df1[df1['技术']==100])
D.print(df1[df1['技术'==100]])
C
解析:DataFrame中可以通过布尔型数据选取满足条件的行数据,
df1[df1['技术']==100]可以检索df1对象中“技术”等于100的数据行,因此答案为C。
[例6]有Python代码如下:
import pandas as pd
data={"姓名":["王静怡","张佳妮","李臣武"],"性别":["女","女","男"],
"借阅次数":[28,56,37]}
df1=pd.DataFrame(data,columns=["姓名","借阅次数","性别"])
p=df1[1:2]
t=df1.at[2,"姓名"]
print(df1)
下列说法正确的是(   )
A.变量t的值为"张佳妮"
B.对象p中只有一行记录
C.输出信息中,第2列(除索引列)为"性别"
D.执行语句“df1["借阅次数"]=40”,将把第一个人的借阅次数修改为40
B
解析:本题考查 pandas 数据处理。变量t的值为"李臣武",因此A选项错误;输出信息中,第2列(除索引列)为"借阅次数",因此C选项错误;执行语句“df1["借阅次数"]=40”,将把所有人的借阅次数修改为40,因此D选项错误;对象p中只有一行姓名为“张佳妮”的记录,因此B选项正确,故答案为B。
[例7] 根据2020年6月《网购用户消费决策月报》制作的词云如图所示,下列说法不正确的是(   )
A.文字越大表示该词语出现在数据集中的次数越多
B.最能体现文本数据集中文本的特征词是“口罩”“连衣裙”
C.通过词云可以快速地获取数据集中所蕴含的关键信息
D.词云必须显示该数据集所包含的全部词语
D
解析:词云是用词频表现文本特征,并以文字大小的形式代表词语的重要性,因此词云显示的该数据集所包含的出现频率较高的一些词语,而不是全部词语,因此答案为D。
[例8]高一年级组公布了各竞赛学科入选学生名单,每个学科的名单数据分别保存在 Excel 文件中(各学科不存在重复学生),如图 a 所示。
为了通知班级,小明导出各班级的学科竞赛名单并保存在如图 b 所示的文件中,然后统计入选竞赛人数最多的前三个班级(若人数相同则一起输出),并绘制柱形图。
(1)编写Python程序如下,在划线处填入合适的代码。
  #导入相关库、设置字体,代码略
km=["数学","物理","化学","生物","信息"]
df=pd.DataFrame() #创建空DataFrame对象
for i in range(len(km)):
  filename="高一竞赛"+   ①   +"学科名单.xlsx"
  df1=pd.read_excel(filename) #读取文件filename中的数据
  df=pd.concat([df,df1],ignore_index=True)
rspm=[1]*len(dict)
for i in dict:
  for j in dict:
    if   ③   :
     bj=int(i[:-1])
     rspm[bj-1]+=1
cla=[];num=[]
for i in range(len(rspm)):
if rspm[i]<=3:
bjstr=str(i+1)+"班"
cla.append(bjstr) #为cla添加一个元素bjstr
num.append(dict[bjstr])
plt.bar(    ④    )
#显示柱形图,如图d所示,代码略
程序划线①处应填入的代码为:        ;
程序划线②处应填入的代码为:         ;
程序划线③处应填入的代码为:        ;
程序划线④处应填入的代码为:         。
km[i]
df.班级==i 或 df["班级"]==i 
dict[i]cla,num(交换位置不对)
解析:本题考查 pandas 数据处理。
(1)①根据题意,需要输出图a,因此此处需要遍历“数学”、“物理”、“化学”、
“生物”、“信息”,即km,故答案为km[i]。
②此处需要对班级进行筛选,并将 DataFrame 对象数据导出为Excel 文件。
根据题意,dict的键为班级,值为该班级的入选竞赛人数。变量i依次遍历到字典dict的键,即各班级。故答案为df.班级==i。
③根据rspm<=3这个条件,可以得知此变量是人数排名,人数越多,rspm 越小。那么前面需要对各班级的人数进行比较来确定排名。根据题意,dict的键为班级,值为该班级的入选竞赛人数。班级人数少的则需要将rspm加1,考虑到人数相同需要一起输出,即人数相同时不需要对排名进行处理,故答案为dict[i]④结合程序及图d,x轴的数据是班级,y轴的数据是竞赛人数,故答案为cla,num。
(2)程序的方框中应填入的正确代码为    (单选,填字母)。
A.df.groupby("班级",as_index=True).sum()
B.df.groupby("班级").count()
C.df.groupby("学科",as_index=True).sum()
D.df.groupby("学科").count()
B
解析:(2)根据程序,分类统计后各班入选学科竞赛的人数存到df2中,由于班级数据为1班、2 班这样的文本,此处统计人数只能用count()函数;再结合下文中for bj in df2.index,可知班级作为了索引,故答案为B。
感谢观看

展开更多......

收起↑

资源预览