内容正文:
单元素养检测卷(三)
(第四章 数据处理与应用 第五章 人工智能及应用)
[时间:45分钟 满分:50分]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个是符合题目要求的。)
1.下列关于数据整理目的的说法中,不正确的是( )
A.减少数据量 B.检测和修正错漏的数据
C.整合数据资源 D.提高数据质量
【解析】 数据整理的目的是检测和修正错漏的数据、整合数据资源、规整数据格式、提高数据质量,不包括减少数据量。选项A错误。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2.某平台个性化广告推荐的工作原理是:基于用户注册时填写的信息及使用平台服务产生的行为数据等信息,推测用户可能感兴趣的内容。下列说法不正确的是( )
A.用户使用平台服务产生的行为数据属于静态数据
B.海量的平台用户注册数据可以采用分布式系统进行管理
C.平台推测用户可能感兴趣的内容不需要分析用户行为数据间的因果关系
D.用户信息填写不完整,可能会导致平台收集的数据存在数据缺失问题
【解析】 用户使用平台服务产生的行为数据属于实时数据,选项A错误。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3.某中学准备充分利用现今的科学技术,举办一场盛大的运动会。为配合运动会顺利进行,学校计算机社团开发了一套运动会管理系统,实现运动员报名、比赛数据传输、气象预测、成绩排名等功能。为体现公平、公正、公开的原则,所有运动员由人工智能进行人脸识别,自动登记入场信息完成检录。利用某平台的大数据进行气象预测,下列说法正确的是( )
A.气象预测所需的实时数据一般采用批处理方式
B.该系统对大数据进行计算的过程依赖于规范的结构化数据
C.有关气象的大数据只有及时处理才能充分发挥其价值
D.只有通过大数据分析出天气变化的原因,才能使气象预测越来越准
C
【解析】 选项A,实时数据采用流计算,静态数据一般采用批处理计算,选项错误;选项B,大数据一般结合了结构化、半结构化和非结构化数据,选项错误;选项D,大数据不探求因果关系,注重的是数据关联,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4.下列不属于常用中文分词算法分类的是( )
A.基于词典的分词方法
B.基于情感的分词方法
C.基于规则的分词方法
D.基于统计的分词方法
【解析】 中文分词算法分为基于词典的分词方法、基于规则的分词方法、基于统计的分词方法,选项B错误。
B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5.某购物网站采集了用户浏览和购物过程中产生的数据,针对产生的数据进行精准推送广告。下列说法正确的是( )
A.该网站数据处理采用了图计算模式
B.该网站中的个人用户敏感数据无须加密处理
C.随着数据采集量的增加,购物网站会变得越来越智慧
D.要实现精准推送广告,需要知道用户浏览或购买商品的原因
C
【解析】 选项A,该购物网站针对产生的数据精准地进行推送广告,采用的是流计算模式,选项错误;选项B,网站中的个人用户敏感数据一定是需要加密处理的,选项错误;选项D,根据大数据思维,不一定强调对事物因果关系的探求,而是更加注重它们的相关性,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
6.人工智能技术正逐渐广泛应用于教育行业,大数据分析、人脸识别、扫描系统,算法优化等新科技正在应用于智慧课堂中,改变了传统教学模式。下列说法正确的是( )
A.通过摄像头捕捉学生的表情动作并对这些行为进行分析采用了行为主义的人工智能方法
B.将老师的语音识别成字幕显示在课件上,采用了符号主义的人工智能方法
C.智慧课堂技术对社会的影响并不都是正面的
D.智慧课堂中刷脸考勤功能没有用到人工智能技术
C
【解析】 选项A,捕捉学生的表情动作属于视觉识别的范畴,是基于数据驱动的深度学习算法,属于联结主义,选项错误;选项B,语音识别也属于深度学习,为联结主义,选项错误;选项C,人工智能是一把双刃剑,会带来一些社会问题,比如失业,选项正确;选项D,同选项A,属于视觉识别,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
7.下列关于人工智能的说法中,正确的是( )
A.AlphaGo 从围棋跨界到电力控制领域,属于混合增强智能
B.人类的所有语义可以用符号精确描述,从而被机器仿真
C.深度学习是一种问题引导下的人工智能学习方法
D.强化学习是一种根据反馈结果不断调整相应学习方法的学习机制
D
【解析】 选项A,AlphaGo 从围棋跨界到电力控制领域,属于跨领域人工智能,选项错误;选项B,人类的部分语义无法被符号精确描述,选项错误;选项C,深度学习是一种数据驱动的人工智能学习方法,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
8.有如下Python 程序段:
import pandas as pd
PM25=[98,45,120]
weekday=[”星期一”,”星期二”,”星期三”]
s=pd.Series(PM25,index=weekday) #创建Series 对象时指定索引
print(s)
执行该程序段后,输出的结果是( )
C
A.[98 45 120]
B.[”星期一”,”星期二”,”星期三”]
【解析】 Serise 是一种一维的数据结构,包含一个数组的数据和一个与数据关联的索引(index),索引值默认是从0 起递增的整数,也可以指定,类型可以为字符串型。题中指定了索引值,故选项C正确。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
9.某微课平台根据点击量给用户自动推荐微课。从平台中获取的部分点击量数据如图所示。为了筛选出点击量前5的微课科目,编写Python程序如下。
import pandas as pd
df=pd.read_excel(”微课点击量.xlsx”)
df1=df.groupby(”科目”,as_index=False).sum()
df2=________ #
print(df2)
该程序段中横线处应填入的代码为( )
A.df1.sort_index(”点击量”).head(5)
B.df1.sort_index(”点击量”,ascending=False).head(5)
C.df1.sort_values(”点击量”).head(5)
D.df1.sort_values(”点击量”,ascending=False).head(5)
【解析】 选项A、B,对索引进行排序,选项错误;选项C,按点击量升序排序,获得最小的5个,选项错误。
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10.用Python创建了一个DataFrame对象df1:
import pandas as pd
data=[[88,89,96],[95,93,92],[90,87,95]]
df1=pd.DataFrame(data,index=[”小明”,”小红”,”小兰”],columns=[”语文”,”数学”,”英语”])
下列操作及描述不正确的是( )
A.print(df1[”英语”])输出英语列的数据
B.print(df1.数学)输出数学列的数据
C
C.print(df1.sort_values(”语文”,axis=1))输出语文列数据升序排序
D.print(df1[df1.语文<90])输出小明同学的成绩
【解析】 升序排序的语句为df1.sort_values(”语文”,ascending=True),选项C错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
11.用Python程序绘制展示全年级签到人数比例的饼图,如图所示。实现该功能的Python程序段如下。
# 列表d存储准时人数、迟到人数和缺席人数
import matplotlib.pyplot as plt
plt.rcParams['font.sans——serif']=['SimHei']
plt.pie(d,labels=['准时','迟到','缺席'])
plt.title('签到人数比例')
plt.show()
下列说法不正确的是( )
A.缺席人数比迟到人数少
B.该图能增强数据的解释力和吸引力
C.生成该饼图的数据来源于列表labels
D.饼图和环形图都适合展现这类比例关系的数据
【解析】 根据语句plt.pie(d,labels=['准时','迟到','缺席'])可知,labels 只是标签,数据来源于列表d,选项C错误。
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
12.小明搜集了几款篮球鞋的数据,并将其存放在文件“篮球鞋.xlsx”中,如图所示。
小明编写了如下Python程序段:
#DataFrame对象使用at[]方法可以根据行标签和列标签选取单个值
#如df.at[0,”型号”]的值为“H1”
import pandas as pd
df=pd.read_excel(”篮球鞋.xlsx”)
max_price={}
for j in range(len(df)):
if df.at[j,”品牌”] not in max_price:
max_price[df.at[j,”品牌”]]=[df.at[j,”型号”],df.at[j,”价
格”]]
else:
if max_price[df.at[j,”品牌”]][1]<df.at[j,”价格”]:
max_price[df.at[j,”品牌”]][1]=df.at[j,”价格”]
max_price[df.at[j,”品牌”]][0]=df.at[j,”型号”]
print(max_price)
执行该程序段后,输出的结果是( )
A.{'A':['P2',1299],'B':['P1',599]}
B.{'A':['H1',899],'A':['H2',519]}
C.{'A':['H2',519],'B':['C1',318]}
D.{'B':['K1',499],'A':['K2',869]}
A
【解析】 要找出每个品牌中的最高价格,利用字典max_price存储;若条件df.at[j,”品牌”] not in max_price成立,说明是第1次出现的品牌,则在字典中添加品牌和价格,若条件不成立,则说明品牌已经存在,如果新遇到的价格大于最高价格,则更新,选项A正确。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
二、非选择题(本大题共3小题,第13题8分,第14题8分,第15题10分,共26分)
13.某中学今年艺术节预设有相声、小品、歌曲演唱、舞蹈、诗朗诵5种形式的表演,需要在这5种形式中根据学生的喜爱度挑选其中3种进行比赛。于是学校组织投票让每个学生选择喜爱的表演形式,并由检票员将投票结果记录在“data.xlsx”中(文件内容如图1所示)。每条记录为一个学生的选票,其中 1 表示选择,0 表示未选择,选择数量超过3票的为无效票。现对其进行分析。
请回答下列问题。
(1)在对数据进行整理的过程中,下列说法正确的有_______________(多选,填字母)。
图1
图2
ACD (2 分)
A.F4单元格数据有误,应核对原选票,并进行相应处理
B.第5、6两行数据重复,应该直接删除其中一行
C.第3行数据存在数据缺失问题,可以通过忽略缺失值对其进行简单的处理
D.B7单元格数据格式与其他同类单元格数据不一致,应进行数据转换
(2)图1 表格中的“选择数量”列是用Excel公式统计出每个同学选择的表演数量,那么H4单元格中的公式应该为______________________________
____________________________________。
=SUM(C4:G4) 或=C4+D4
+E4+F4+G4或其他等价答案 (2分)
(3)请在横线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel(”data.xlsx”)
df_valid=df[①_________________________________________________
_____________] #删除无效票
df_valid=df_valid.drop(”选择数量”,axis=1)
df[”选择数量”]<=3 或 df[”选择数量”]<4或其他等价
答案 (2 分)
g=df_valid.groupby(”②_____________”,as_index=False).sum()#按年级统计票数
g.to_excel(”result.xlsx”) #“result.xlsx”内容见图2
【解析】 (1)选项A,数据有误,正确的做法是先核对再处理,选项正确;选项B,两行重复,正确的处理方法是保证一行数据完整、准确,再删除另外一行, 直接选择删除其中一行不妥,选项错误;选项C,数据缺失姓名的值, 本题主要目的是统计选票,和投票者姓名关系不大,在不影响数据统计的前提下,可以忽略此缺失的数据,选项正确;选项D,
年级 (2分)
数据格式不一致, 正确的做法是把数据格式转换成统一格式再做处理, 选项正确。
(2)H列计算的是前面C到G列的累加和,故可以使用SUM函数,也可以使用逐个单元格进行累加求和。
(3)①空根据题意和注释, 本条语句为筛选出有效票, 即实现删除投票数量大于3的票, 故此处代码为df[”选择数量”]<=3或 df.选择数量<=3。②空根据注释为按照年级进行分组求和, 故此处分组语段名为”年级”。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
14.李老师收集了2022 级学生“七选三”选课意愿数据,每个班的数据分别保存在以“xk+班级”的形式命名的Excel文件中,如图1所示。每个文件记录了该班每名学生的选考科目选课情况,如图2所示。
图1 图2
为统计分析全年级“七选三”选课意愿数据,李老师编写了如下Python 程序。请回答下列问题。
(1)读取各班Excel 文件,并合并到一个DataFrame 对象中。程序代码如下,请在横线处填入合适的代码。
def data(i):
i=i+1
if ①____________________________________:
t='0'+str(i)
i<10 或i<=9 或其他等价答案 (1分)
else:
t=str(i)
df_t=pd.read_excel('xk'+t+'.xlsx')
return df_t
n=12
df=pd.DataFrame()
for i in range(n):
df=df.append(②_________________,ignore_index=True) #在
df 末尾追加一个DataFrame
(2)统计“技术”选课人数占总人数的比例,并绘制出各个科目选课人数的柱形图。程序代码如下,请在横线处填入合适的代码。
km={'物理':0,'化学':0,'生物':0,'政治':0,'历史':0,'地理':0,'技术':0}
for i in range(len(df)):
xk=df['选课'][i].split(',') #将“选课”字符串用逗号分割出来
data (i) (1分)
for j in xk:
①__________________________________
print('选考技术占比: '+str(round
(②__________________________________________*100,2))+'%')
df_km=pd.DataFrame({'科目':km.keys(),'人数':km.values()}) #转换为DataFrame
plt.title('选考各科目人数对比图')
km[j]+=1 或其他等价答案 (2分)
km['技术']/len(df) 或其他等价答案 (2分)
plt.bar(③_______________________________________,df_km['人数'],label='各科目人数')
plt.legend()
plt.show()
(3)分析图3可知,选课人数最多的三门科目是
___________________________。
df km['科目'] 或其他等价答案 (1分)
物理、化学、地理 (1分)
图3
【解析】 (1)①空在班号前补0,观察图1的文件名,可知当i 值介于1~9 之间时需要补0,可填:i<10 或i<=9。
②自定义函数data()的功能是:代入班号,生成班级文件名,用pd_read 将对应的文件转换为DataFrame 对象返回。②空填:data(i)。
(2)①循环语句“for j in xk:”遍历学生所选学科,统计各科选课人数,以科目为键将结果存入字典km,填km[j]+=1。
②空统计技术选考人数占总人数的比例,而总人数可以通过len(df)得到,故填:km['技术']/len(df)。
③观察图3可知,X 轴数据为科目,填:df_km['科目']。
(3)观察图表可知,选课人数最多的三门科目是物理、化学和地理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15.全国文明城市(区),简称文明城市,是指在全面建设小康社会中市民整体素质和城市文明程度较高的城市。小明收集并整理了从第1 届到第6届文明城市的名单数据, 存储在“wmcs.xlsx”文件中,如图1 所示。
文明城市的名单构成:
①在没有复查环节的年份:当年评比通过的城市(表中“复查”项为空)+之前入选的城市(顺延,表中不体现);
②在有复查环节的年份:当年评比通过的城市(表中“复查”项为空)+之前已入选的城市复查通过(表中“复查”项为“通过”)。
其中第2、5、6 届有复查环节。以“宁波”为例, 第1 届评比通过,第2 届复查通过,第3届第4 届顺延(表中无宁波的数据),第5 届复查通过,第6 届复查通过。
图1
图2
请回答下列问题。
(1)为了统计分析连续六届入选的全国文明城市(区),小明编写了Python 程序,程序运行界面如图2所示。请在横线处填入合适的代码。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans——serif']=['SimHei'] #解决图表中的中文显示问题
df=pd.read_excel('wmcs.xlsx')
df1=df[df['届次']=='第1 届']
lst=list(df1['地区']) #将“地区”列数据转换为列表,存入lst
for i in range(2,7):
dfg=df[df['届次']=='第'+①________________+'届']
tmp=[]
if dfg['复查'].②_________________!=0: #只须处理复查的年份
for j in lst:
str(i) (2 分)
count() (2 分)
if j not in list(③_______________________________________):
tmp.append(j) #tmp 追加一个元素j
for num in tmp:
lst.remove(num) #lst 删除一个元素num
print('连续六届入选的全国文明城市(区)为: ')
for i in lst:
print(i,end=';')
dfg['地区'] 或dfg['地区'].values (2 分)
(2)第6 届全国文明城市(区)共有133 个,复查确认保留荣誉称号的前5 届全国文明城市(区)有151 个。编写Python程序统计入选第6 届全国文明城市(区)数量前10 的省份(直辖市或自治区),并绘制如图3所示的柱形图。部分Python 程序如下,请在横线处填入合适的代码。
df=df[df['届次']=='第6 届']
dsg=df.groupby('省份').地区.count() #此操作将使“省份”成为dsg 的索引
dsg=dsg.sort_values(ascending=False) #对各省的地区数量进行降序排列
dsg=dsg.①_________________
plt.bar( ) #绘制垂直柱形图
plt.title('入选第6 届全国文明城市(区)数量前10 的省份(直辖市或自治区)')
plt.②_________________
head(10) (1分)
show() (1分)
图3
(3)为实现第(2)题描述的功能,则加框处应填入的代码为
_____________(单选,填字母)。
A.dsg.省份,dsg.地区
B.dsg.index,dsg.地区
C.dsg.index,dsg.values
D.dsg.省份,dsg.values
【解析】 (1)要求统计连续六届入选的文明城市名单,基本思路是以第1 届名单lst 为基础,遍历2~6 届中所有入选的文明城市,若lst 中某城市
C (2分)
未出现在后面某届名单中,则该城市复查未通过,不符合要求,从lst 中剔除;重复这个操作,直至所有2~6 届中入选的文明城市全部遍历结束,lst 中剩余的数据就是符合条件的值,遍历输出lst 即可。
①语句“dfg=df[df['届次']=='第'+①+'届']”的目的是挑选出第i 届的所有数据,生成对象dfg,届数正好与循环变量i 一致,①空填str(i)。
②由题干可知,3、4 两届顺延,故只要找出2、5、6 届数据进行判断。由题干“在没有复查环节的年份:当年评比通过的城市(表中‘复查’项为空)+之前入选的城市(顺延,表中不体现)”可知,3、4两届“复查”栏为
空。因此可以通过dfg['复查'].count()!=0,来排除3、4 两届,②空填:count()。
③接下来遍历第1 届入选名单lst 列表,判断哪些城市没有出现在当前届复查通过的名单中,以下为部分代码的解释:
for j in lst: #遍历第1 届名单
if j not in list(③): #若某城市j 没出现在当前届复查通过的列表中
tmp.append(j) #把城市j 添加到剔除列表tmp
for num in tmp: #遍历列表tmp
lst.remove(num) #从lst 中删去复查未通过的城市
dfg 为当前届数据,通过dsg['地区']可以找出所有入选的城市,数据类型为Series 结构,程序用list() 函数转换成了列表,③空填:dfg['地区'] 或dfg['地区'].values
(2)①处在降序数据中选出前10,填:head(10)。
②处显示绘图对象,填show()。
(3)由于分组时以“省份”为分组字段,只对地区进行了计数,没有设定参数as_index=False,故结果dsg是以省份为索引,只有一列各省计数值
的Series 对象,故X 轴数据为dsg.index,Y 轴数据为dsg.values,选项C正确。注意:若只对其中一列做统计,统计结果是Series 对象,而不是DataFrame 结构。
感谢聆听,再见!
$$