2020年上海市高等学校信息技术水平考试试卷_三级_数据科学技术及应用_模拟卷_三、程序填空题_答案

2020年上海市高等学校信息技术水平考试试卷_三级_数据科学技术及应用_模拟卷_三、程序填空题_答案

(本试卷考试时间 150 分钟)

答案是自己做的,经验证,可成功运行。
内容仅供学习交流,不可转载。

点击下载源程序

三、程序填空题 ( 本大题 4 道小题 ,每空 3 分,共 36 分)。

1.

提示:
a) 题目源程序存放在"C:\KS"文件夹下,供程序调试;
b) Python科学计算库函数使用说明存放在"C:\KS"文件夹下,注意不同类库的函数存放在相应的sheet下。

某商品的成本(cost)可以根据产量(output)进行计算: cost=0.14*output+42.7,编写程序模拟商品的生产数据,估计商品的成本(源程序fill_1.py)。

1)使用数组记录6次生产的商品产量(千件),分别为10、5、7、9、11、8;
2)根据公式计算每次生产商品的成本;
3)假设实际成本围绕计算的成本值上下波动,波动值服从均值为0、方差为2的正态分布,随机生成6个数据,模拟每次的波动;
4)加上波动值,计算6次生产商品的实际成本。

源程序文件(fill_1.py)
#1)使用数组记录6次生产的商品产量(千件),分别为10、5、7、9、11、8;
output =1#2)根据公式计算每次生产商品的成本;
cost = 0.14*output + 42.7 
print( '1:cost: ',cost)
#3)实际成本围绕计算成本上下波动,波动值服从均值为0,方差为2的正态分布。
#随机生成6个数据,模拟每次的波动;
varcost = np.2(0,2,6) 
print( '2:variance: ',varcost)
#4)加上波动值,计算6次生产商品的实际成本。
cost =3print( '3:cost: ',cost)

答案:

#【1】:np.array([10,5,7,9,11,8])
#【2】:random.uniform
#【3】:cost+varcost

2.

提示:
a) 题目源程序存放在"C:\KS"文件夹下,供程序调试;
b) Python科学计算库函数使用说明存放在"C:\KS"文件夹下,注意不同类库的函数存放在相应的sheet下。

根据IDC的统计数据,各品牌手机在中国的年销量如表1所示(源程序fill_2.py)。

1)根据表1的数据,绘制折线图分析各品牌销量发展趋势,如图1所示;
2)计算2018年各品牌手机的同比增幅((Y2018-Y2017)/Y2017),并在原数据中增加新列"INC2018",如图2所示;
3)显示增幅为正的品牌2015-2018年的销售量。

在这里插入图片描述

在这里插入图片描述
图1 手机销量折线图

在这里插入图片描述
图2 增加列:2018年各品牌手机的同比增幅INC2018

源程序文件(fill_2.py)
#1)记录表1的数据,绘制折线图分析各品牌销量发展趋势;
index = ['Huawei','Apple','OPPO','vivo','Mi'];
columns = ['Y2015','Y2016','Y2017','Y2018']
data = np.array( [ [62.9,76.6,90.9,104.97], [58.4,44.9,41.1,36.32],
         [35.3,78.4,80.5,78.94],[35.1,69.2,68.6,75.97],
         [64.9,41.5,55.1,51.99] ] )
sales = DataFrame(1)
print(sales)
#绘制折线图
psales = DataFrame(data.T, columns, index)
print(psales)
plt.rcParams['font.sans-serif'] = ['SimHei']2(title='2015~2018国内手机销量',LineWidth=2, marker='o',
        linestyle='dashed',grid=True,alpha=0.9)
plt.show()
#2)计算2018年各品牌手机的同比增幅,并在原数据中增加新列"2018同比增幅";
sales['INC2018'] =3print(sales)

答案:

#【1】:data=data,columns=columns,index=index
#【2】:psales.plot
#【3】:(sales['Y2018']-sales['Y2017'])/sales['Y2017']

3.

提示:
a) 题目源程序存放在"C:\KS"文件夹下,供程序调试;
b) Python科学计算库函数使用说明存放在"C:\KS"文件夹下,注意不同类库的函数存放在相应的sheet下。

表2和表3分别记录了部分"人工智能"类图书的一周销售数据(源程序fill_3.py)。

1)根据表2和表3分别创建数据对象,然后将两个数据对象合并,如表4所示;
2)统计每家出版社出版的图书数,如图3所示;
3)显示一周各出版社销售额,如图4所示。

在这里插入图片描述
在这里插入图片描述
图3 每家出版社出版的图书数

在这里插入图片描述
图4 一周各出版社销售额

源程序文件(fill_3.py)
import numpy as np
import pandas as pd
from pandas import DataFrame

#1)分别记录根据表2和表3中数据,然后合并
books1={"bookname": ['Python数据分析基础', '数据科学与大数据分析','机器学习','人工智能简史'],"press": ['人民邮电出版社', '高等教育出版社', '清华大学出版社', '人民邮电出版社'], "price": [38.9, 56.4, 45.2, 23.5], "sales": [25, 39, 44, 24]}
col_name=['bookname','press','price','sales']
df1=DataFrame(books1,index=['A01','A02','A03','A04'], columns = col_name)
print(df1)

books2={"bookname": ['Python程序设计', '数据科学导引','深度学习', '机器学习实战','TensorFlow框架',],"press": ['清华大学出版社', '高等教育出版社','人民邮电出版社', '人民邮电出版社', '电子工业出版社'], "price":[42.1, 34.5, 67.1, 56.0,78.2],"sales": [30,18,32,20,10]}
df2=DataFrame(books2,index=['B01','B02','B03','B04','B05'], columns = col_name)
print(df2)

#合并df1和df2
df3=pd.1([df1,df2])
print("数据集合并后:\n",df3)

#2)统计每家出版社出版的图书数量
print("\n出版社出版的图书数:\n",df3['press'].2, "\n")

#3)显示一周各出版社销售额
df3['total'] = df3['price']*df3['sales']
grouped = df3.groupby('press')
print( grouped.aggregate(3) )

答案:

#【1】:concat
#【2】:value_counts()
#【3】:{'price':np.sum}

4.

提示:
a) 题目源程序存放在"C:\KS"文件夹下,供程序调试;
b) Python科学计算库函数使用说明存放在"C:\KS"文件夹下,注意不同类库的函数存放在相应的sheet下。

风记录数据集(winds.csv)记录了2014年某区域发生的台风信息,包含台风名、台风等级、气压(百帕)、移动速度(公里/时)、纬度、经度、记录数、顺序、风速(米/秒)等9个属性,具体说明见"数据集说明"文件。(源程序fill_4.py)

  1. 从文件中读出台风数据;
    2)查看是否存在缺失数据,删除包含缺失数据的样本;
    3)输出达到超强台风等级的台风名字。
源程序文件(fill_4.py)
import pandas as pd
import numpy as np

#1) 从文件中读出台风数据
filename = 'winds.csv'
winds = pd.1(filename)
#print(winds[0:5])

#2)查看是否存在缺失数据,删除包含缺失数据的样本
print(winds.isnull())2(inplace = True)

#3)输出达到超强台风等级的台风名
names = winds.loc[3,"windname"  ].unique()
print("\n达到超强台风等级:\n", names  )

答案:

#【1】:read_csv
#【2】:winds.dropna
#【3】:['level'].values=='超强台风'
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerbertHu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值