当前位置: 首页 > article >正文

综合练习(python)

前言

有了前面的知识积累,我们这里做两个小练习,都要灵活运用前面的知识。

First

需求

根据美国/英国各自YouTube的数据,绘制出各自的评论数量的直方图

第一版

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')\

uk_comment = t_uk[:,-1]

d=50000
num = (uk_comment.max()-uk_comment.min())//d

plt.figure(figsize=(20,8),dpi=200)
plt.hist(uk_comment,num)
plt.show()

很明显,这里很多评论都是小于5000甚至3000,很多区间都没什么数据。所以我们要修改,只统计小于3000的数据。

第二版

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')

uk_comment = t_uk[:,-1]

temp_uk_comment = uk_comment[uk_comment<3000] 
d=300
num = (temp_uk_comment.max()-temp_uk_comment.min())//d

plt.figure(figsize=(20,8),dpi=200)
plt.title("英国YouTube评论分布直方图")
plt.xlabel("评论数")
plt.hist(temp_uk_comment,num)
plt.show()


import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')

us_comment = t_us[:,-1]

temp_us_comment = us_comment[us_comment<3000] 
d=300
num = (temp_us_comment.max()-temp_us_comment.min())//d

plt.figure(figsize=(20,8),dpi=200)
plt.title("美国YouTube评论分布直方图")
plt.xlabel("评论数")
plt.hist(temp_us_comment,num)
plt.show()

Second

需求

绘制图形来了解英国的YouTube中视频评论和喜欢数的关系.

第一版

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')

uk_like = t_uk[:,1]
uk_comment=t_uk[:,-1]

plt.figure(figsize=(20,8),dpi=200)
plt.scatter(uk_comment,uk_like)
plt.show()

很明显,数据分布在0-3000太密集了,而在>3000的部分分布的太稀疏了,所以我们就要调整。

但是,这次和上面的有点一些不一样,不能直接对uk_like或者uk_comment切片,因为我们画的是散点图,两种变量的要一一对应。所以我们只能对原数据t_uk进行切片。

第二版

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')

temp_uk=t_uk[t_uk[:,-1]<3000]

temp_uk_comment=temp_uk[:,-1]
temp_uk_like=temp_uk[:,1]

plt.figure(figsize=(20,8),dpi=200)
plt.xlabel("评论")
plt.ylabel("点赞数")
plt.title("英国YouTube--点赞与评论的关系")
plt.scatter(temp_uk_comment,temp_uk_like)
plt.show()


import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")

# 文件的路径
us_file_path="./youtube_video_data/US_video_data_numbers.csv"
uk_file_path="./youtube_video_data/GB_video_data_numbers.csv"

# 读取文件
t_us=np.loadtxt(us_file_path,delimiter=',',dtype='int')
t_uk=np.loadtxt(uk_file_path,delimiter=',',dtype='int')

temp_us=t_us[t_us[:,-1]<30000]

temp_us_comment=temp_us[:,-1]
temp_us_like=temp_us[:,1]

print(temp_uk_comment,temp_uk_like)

plt.figure(figsize=(20,8),dpi=200)
plt.xlabel("评论")
plt.ylabel("点赞数")
plt.title("美国YouTube--点赞与评论的关系")
plt.scatter(temp_us_comment,temp_us_like)
plt.show()


http://www.kler.cn/a/274298.html

相关文章:

  • 【JAVA】JAVA接口公共返回体ResponseData封装
  • 华为IPD流程6大阶段370个流程活动详解_第一阶段:概念阶段 — 81个活动
  • LeetCode题练习与总结:预测赢家--486
  • java 基于冷热数据分离的思想设计LRU链表
  • springboot460实习生管理系统设计和实现(论文+源码)_kaic
  • 1. JasperSoft介绍与安装
  • GAMES101 学习3
  • 【计算机考研】408全年复习保姆级规划+资料
  • .Net Core 中间件验签
  • 华为组网:核心交换机旁挂防火墙,基于ACL重定向配置实验
  • Maven项目如何导入依赖包
  • Nginx安装教程
  • Springboot+Redis:实现缓存 减少对数据库的压力
  • fastjson反序列化攻略
  • 解决重装系统之后,开始菜单找不到Anaconda3相关图标
  • 快速从0-1完成聊天室开发——环信ChatroomUIKit功能详解
  • Java-SpringAop 编程式事物实现
  • 如何在三个简单步骤中为对象检测标注图像
  • C语言---指针的两个运算符:点和箭头
  • Java 多线程(抢CPU)
  • 面试算法-51-翻转二叉树
  • 【C语言进阶篇】自定义类型:结构体(上)
  • 堆排序(数据结构)
  • SpringBoot项目串口通讯之jSerialComm
  • 什么是多模态学习?
  • 代码随想录|Day21|回溯01|77.组合