📚 Big Data Programming
There are 6 BDP homeworks.
第一次作业: 数据处理基础操作一
Upload Link:
作业上传连接(点这里)
Exercise Requirements
- 创建数组
[0 1 2 3 4 5 6 7 8 9]
,并将该数组中的奇数全部都替换成-1。 - 创建一个4行4列的随机数组,并取出该数组的对角线上所有的元素形成一个一维数组。
- 取出数组
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
中大于等于5并小于等于10的元素作为一维数组返回。 - 将数组
a = np.random.rand(3,5)
和b = np.random.rand(6,4)
叠加在一起,其中a
在b
的上面,并且在b
的第2列(下标从0开始)新增一列,用0来填充。 - 创建一个4行6列的随机数组,并取出该数组第1,2,4列上的所有元素。
- 创建一个8行9列的随机数组,并取出该数组第1-5行(包括第5行)的第8列内大于的所有大于3的元素。
- 创建一个8行9列的随机数组,按如下要求分别取出该数组中的元素:
- 取出第1行和第3行的数据
- 取出第1行到第3行的数据
- 取出前4列的数据
- 取出该数组的
(0, 0)、(1, 2)、(3, 5)
位置上的元素值
第二次作业:数据处理基础二
Upload Link:
作业上传连接(点这里)
Exercise Requirements
- 创建一个所有值都是False的布尔型数组(shape自定义)。
- 对数组
data1 = np.arange (10)
进行形状转换(转换后的shape自定义)。 - 将数组
data2 = np.random.randint(0, 10 , size=(4, 5))
中所有偶数都替换成0(改变原来数组和不改变原来数组两种方式实现)。 - 将二维数组
data3 = np.arange(24).reshape(4, 6)
的行和列分别进行逆向(即,反转行,反转列)。 - 求数组
data4 = np.arange(16)
中大于等于5并且小于等于10的元素。 - 获取数组
data5 = np.random.randint(0, 20, size=(4, 5))
中每个元素值出现的次数的排行。 - 找到数组
data6 = np.random.randint(0, 20, size=(4, 5))
中每行的最大值。 - 求数组
data7 = np.random.randint(0, 20, size=(4, 5))
中每行最小值与最大值相除的结果。 - 判断下面两个数组是否完全相等。
- 数组1:
data8 = np.random.randint(0, 20, size=(4, 5))
- 数组2:
data9 = np.random.randint(0, 20, size=(4, 5))
- 数组1:
- 创建一个包含10个元素的1维数组,元素值是0到1之间的随机数(不包含0和1)。
- 完成下列关于Series的练习
- 用下表中数据创建Series对象(对象名为“score”,索引名为class)
- 查看1-5班的数据
- 查看哪个班级的平均成绩还没有录入
- 获取全年级的平均成绩(空值做0分处理)
- 由于参考答案有误,现在要给每位同学的成绩加上2分
- 找出平均成绩在90分以上的班级
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
class | 90 | 95 | 85 | 78 | NAN | 96 | 97 | NAN | 80 | 87 | 86 | 83 |
- 完成下列关于DataFrame的练习
- 根据下表创建DataFrame对象(列表和字典各用一种实现)
- 对创建的DataFrame进行转置
- 由于体育老师生病,导致大家的体育成绩没有录入,请删除改列数据
- 学校发现遗漏了“科学”课的成绩,请为学生添加“科学”成绩。学生的成绩为(97,87,78,76,84,88,91)
姓名 | 语文 | 数学 | 英语 | 体育 | |
---|---|---|---|---|---|
1 | 张三 | 89 | 59 | 84 | 0 |
2 | 李四 | 78 | 83 | 97 | 0 |
3 | 王五 | 79 | 85 | 88 | 0 |
4 | 小明 | 89 | 92 | 83 | 0 |
5 | 小红 | 90 | 67 | 67 | 0 |
6 | 小刚 | 87 | 81 | 73 | 0 |
7 | 小亮 | 83 | 77 | 71 | 0 |
- 用pandas读取
lianjia.csv
,完成下列操作- 观察结构,调整列索引顺序(Region, Garden, Layout, Floor, ID, Year, Size, Elevator, Direction, Renovation, Price)
- 增加一列关于目前状况(状况:state,可以使用1代表售出,0代表未售出)
- 删除ID这一列无用的数据
- 查找楼层(floor)小于7的所有房屋
- 修改楼层小于7的房源的电梯状态,统一改成无电梯,反之就设为有电梯
第三次作业: 数据可视化练习
Upload Link:
作业上传连接(点这里)
Exercise Requirements
- 折线图练习
- 读取长沙市某年5月份的气温数据(
changsha.csv
),按照时间顺序绘制成折线图 - “highest”为当天最高气温,”lowest”为当天最低气温
- 使用圆点表示数据点
- x轴是是时间,y轴是温度,要求图中有具体刻度
- x轴的标题是”时间(天)”,y轴的标题是”气温(摄氏度)“
- 图标题是”长沙5月份气温走势“图
- 读取长沙市某年5月份的气温数据(
- 柱状图练习
- 读取三类学校(普通本科、中等职业教育、普通高中)2014-2018年间的招生数据(
enrollment.csv
),绘制柱状图。 - x轴是年份,y轴是当年的招生人数(万人)。
- 按年份进行分组绘制,同一年份的放在一个组。
- 要求绘制图例,图例横向排列(提示:使用legend的ncol参数,具体用法自行查Matplotlib官网)
- 图标题是”2014-2018普通本科、中等职业教育、普通高中招生人数“
- 读取三类学校(普通本科、中等职业教育、普通高中)2014-2018年间的招生数据(
- 直方图练习
- 读取
scores.csv
,绘制直方图。 - 读取csv文件之后生成DataFrame对象。
- 绘制其中历史成绩(“history”)的直方图。
- 标记x轴的坐标。
- 每个柱面上方显示处于该区间内成绩数量。
- 图标题是”x班历史成绩直方图“。
- 读取
- 散点图练习
- 分别读取4个城市的二手车数据(
bj.csv
、sh.csv
、gz.csv
和sz.csv
),将其归档到同一个DataFrame中。 - 计算车辆的使用年份和保值率,并在DataFrame新增对应的字段存储数据。
- 使用年份=当前时间-购买时间
- 保值率=二手车价格 / 新车价格
- 绘制使用年份与保值率的散点图,观察并简单分析其分布特征。
- 绘制行驶距离与保值率的散点图,观察并简单分析其分布特征。
- 分别读取4个城市的二手车数据(
- 饼图练习
- 将下边的数据绘制成饼图。
- 设置阴影效果
- 将Chrome对应分块从饼图中分离出来,距离设为0.05。
- 设置显示分块占比信息,保留两位小数。
- 占比信息以白色文字显示,分块名以黑色文字显示。
- 将Edge和Safari的占比的字体大小设置为10,其余为12.
Chrome | Internet Explorer | FireFox | Edge | Safari | 其他浏览器 |
---|---|---|---|---|---|
0.6098 | 0.1218 | 0.1147 | 0.0415 | 0.0372 | 0.075 |
- 箱线图练习
- 读取“scores.csv”中的数据绘制成箱线图。
- 同一张图上每个科成绩对应一个箱线。
- 观察所绘制的箱线图,简单分析一下。
第四次作业: 综合实战一
Upload Link:
作业上传连接(点这里)
Exercise Requirements
- 综合实战一:airbnb挖掘
- 数据类型转换
- 分别针对“定价数据”、“评论数据”、“空间数据”、“入住数据”进行相关统计
- 异常数据处理
- 特征抽取、预处理、选择
- 对“评论数”、“价格”、“评论数”预测
- 相关结果可视化
第六次作业: 综合实战练习二
Upload Link:
作业上传连接(点这里)
Exercise Requirements
- 综合实战一:科学吃鸡
- 查看并处理缺失值
- 数据集内存压缩
- 异常数据处理
- 计算是否具有吃鸡特性
- 寻找吃鸡概率最高的队友
- 射击距离与抢的选择
- 移动距离与吃鸡的分布
- 综合实战二:理性消费
- 查看并处理缺失值
- 数据集内存压缩
- 异常数据处理
- 分析每个人的消费情况
- 性别与婚姻状况的分布与购买
- 年龄和产品购买信息挖掘
- 产品销售情况分析
- 城市与购买力之间的分析
- 相同产品在不同城市的购买力分析