题目
某城市正在举行“迎亚运邮票设计大赛”作品的微信投票活动,共有6件作品参与投票,现要选出得票最高的作品。每人每票最多可投3件作品(一张选票中投票超过3件作品则该选票无效)。本次投票共收到七万多条数据,小萌已将投票数据整理为csv文件,如图a所示,并将选票处理结果可视化,如图b所示。
(1)
小萌先进行抽象建模与算法的设计,请补充完整划线处的内容。
将csv文件中的数据存储到二维数组result[i][j],表示第i张选票第j件作品的票选数据,一维数组ps[i]表示作品i的最终得票数。依次处理所有选票数据,用sumx统计某张选票中“1”的个数,当可判断该选票有效,否则无效。若选票有效则对应的作品票数加1,最后将选票结果用图表呈现。
(2)
为实现上述功能,请在划线①②处填入合适的代码。
import numpy
import matplotlib.pyplot as plt
result=numpy. loadtxt ("toupiao.csv", encoding="utf-8",
delimiter=",",s kiprows=1)
#将csv文件转化为二维数组,skiprows=1表示忽略第一行数据
n=len(result) #获取result的行数(收到的投票数)
zp=["作品1",
"作品2", "作品3",
"作品4", "作品5",
"作品6"]
ps=[0]*6
for i in range(n):
for j in range(6):
sumx+=result[i][j]
if sumx<=3:
for j in range(6):
plt. rc("font", **{"family":
"SimHei"}) #设置图表中的文字字体
for x, y in zip(zp, ps):
#zip函数用于显示数字标签
plt. text(x, y, "%d"
%y, ha="center", va="bottom", fontsize=14)
plt. title("迎亚运邮票设计大赛")
#绘制垂直柱形图 plt. show()
(3)
方框处应选择的代码为( )(单选,填字母)
A . plt. bar(zp, ps)
B . plt. plot(zp, ps)
C . plt. scatter(zp, ps)
答案: 【1】sumx<=3
【1】sumx=0【2】ps[j]+=result[i][i] 或if result[i][j]==1:ps[j]+=1
A