Numpy提取文件+pyplot图表统计

在这里插入图片描述

import numpy as np
# 读取scores.csv的数据 并且
score1 = np.loadtxt("scores.csv", delimiter=",", skiprows=1)


# 由于成绩是一列一列的 然后有两个column 分别是 期中 和 期末
# 弄2列单元格,分别是 期中 和 期末。分别将两列成绩取出
arr_midtermExam = score1[:, 0]  # 期中
arr_finalExam = score1[:, 1]  # 期末

# 接下来利用布尔索引完成下列任务
# 筛选出 成绩 大于60 并且 小于80 的数据
arr1_midtermExam = arr_midtermExam[(arr_midtermExam > 60) & (arr_midtermExam < 80)].astype("uint8")
arr1_finalExam = arr_finalExam[(arr_finalExam > 60) & (arr_finalExam < 80)].astype("uint8")
# 筛选出 成绩 大于80 并且 小于90 的数据
arr2_midtermExam = arr_midtermExam[(arr_midtermExam > 80) & (arr_midtermExam < 90)].astype("uint8")
arr2_finalExam = arr_finalExam[(arr_finalExam > 80) & (arr_finalExam < 90)].astype("uint8")
# 筛选出 成绩 大于90 的数据
arr3_midtermExam = arr_midtermExam[arr_midtermExam > 90].astype("uint8")
arr3_finalExam = arr_finalExam[arr_finalExam > 90].astype("uint8")

# 输出
print("期中考试介乎60分到80分的分数: ", arr1_midtermExam)
print("期末考试介乎60分到80分的分数:", arr1_finalExam)
print("期中考试介乎80分到90分的分数:", arr2_midtermExam)
print("期末考试介乎80分到90分的分数:", arr2_finalExam)
print("期中考试超过90分的分数: ", arr3_midtermExam)
print("期末考试超过90分的分数: ", arr3_finalExam)

在这里插入图片描述

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties

# 处理中文字体的问题
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)

UK_youtube_data = np.loadtxt("GB_video_data_numbers.csv", delimiter=",", skiprows=1, dtype="uint8")
USA_youtube_data = np.loadtxt("US_video_data_numbers.csv", delimiter=",", skiprows=1, dtype="uint8")
# 英国的数据
UK_click = UK_youtube_data[:, 0]  # 点击
UK_like = UK_youtube_data[:, 1]  # 喜欢
UK_dislike = UK_youtube_data[:, 2]  # 不喜欢
UK_comment = UK_youtube_data[:, 3]  # 评论
# 美国的数据
USA_click = USA_youtube_data[:, 0]  # 点击
USA_like = USA_youtube_data[:, 1]  # 喜欢
USA_dislike = USA_youtube_data[:, 2]  # 不喜欢
USA_comment = USA_youtube_data[:, 3]  # 评论

# 1. 结合Matplotlib绘制各自的评论数量的图形,体现其 评论数 主要分布在哪个区间。
# 此题利用直方图
# 求极差
range_number = max(max(UK_comment), max(USA_comment)) - min(min(UK_comment), min(USA_comment))
# 自定义组距
b = 5
# 求得组数
bins = int(round(range_number)/b)
# 绘制直方图
plt.hist([UK_comment, USA_comment], bins, label=["UK", "USA"])
# 添加x轴和y轴标签
plt.xlabel("评论数", fontproperties=font)
plt.ylabel("频数", fontproperties=font)
# 添加图例
plt.legend(loc="upper right", prop=font)
# 添加标题
plt.title("YouTube的评论数直方分布图", fontproperties=font)
# 显示图形
plt.show()

# 2. 绘制图形,分析英国的Youtube中视频的评论数与喜欢数的关系。
# 此题也可以使用直方图
# 求极差
range_number = max(max(UK_comment), max(UK_like)) - min(min(UK_comment), min(USA_like))
# 自定义组距
b = 5
# 求得组数
bins = int(round(range_number)/b)
# 绘制直方图
plt.hist([UK_comment, UK_like], bins, label=["评论数", "喜欢数"])
# 添加y轴标签
plt.ylabel("频数", fontproperties=font)
# 添加图例
plt.legend(loc="upper right", prop=font)
# 添加标题
plt.title("英国YouTube上评论数和喜欢数的直方分布图", fontproperties=font)
plt.show()

# 3. 当希望将两个国家的数据拼接一起来研究分析。
# • 拼接全为0的数组标识为英国
print("拼接0之后,英国的数据:")
UK_zeros = np.zeros((len(UK_comment), 1), dtype="uint8")
arr_zero_UK = np.hstack((UK_youtube_data, UK_zeros))  # 水平拼接
print(arr_zero_UK)
print()
# • 拼接全为1的数组标识为美国
print("拼接1之后,美国的数据:")
USA_ones = np.ones((len(USA_comment), 1), dtype="uint8")
arr_one_USA = np.hstack((USA_youtube_data, USA_ones))  # 水平拼接
print(arr_one_USA)
print()
# • 将两个国家的数据拼接
print("英国和美国垂直拼接后的数据: ")
arr_UK_USA = np.vstack((arr_zero_UK, arr_one_USA))
print(arr_UK_USA)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值