一.这段代码的主要目的是加载美国和英国的YouTube视频数据,并将它们合并在一起。在这个过程中,我们还添加了一个额外的列来表示数据的来源国家(美国或英国)。
# coding=utf-8
import numpy as np
# 定义CSV文件的路径
us_file_path = './youtube_video_data/US_video_data_numbers.csv'
uk_file_path = './youtube_video_data/GB_video_data_numbers.csv'
# 使用numpy的loadtxt函数加载CSV文件,指定分隔符为逗号,数据类型为整数
us_data = np.loadtxt(us_file_path, delimiter=",", dtype=int)
uk_data = np.loadtxt(uk_file_path, delimiter=",", dtype=int)
# 添加国家信息
# 构造全为0的数据,表示美国数据
zeros_data = np.zeros((us_data.shape[0], 1)).astype(int)
# 构造全为1的数据,表示英国数据
ones_data = np.ones((uk_data.shape[0], 1)).astype(int)
# 分别添加一列全为0,1的数组到美国和英国的数据中
# 这些列将表示数据的来源国家(美国或英国)
us_data = np.hstack((us_data, zeros_data))
uk_data = np.hstack((uk_data, ones_data))
# 合并数据
# 垂直堆叠美国和英国的数据,形成一个新的数组
final_data = np.vstack((us_data, uk_data))
# 打印合并后的数据
print(final_data)
在这段代码中,我们首先加载了美国和英国的YouTube视频数据。然后,我们为每个数据集创建了一个额外的列,该列包含了表示国家来源的0或1。0表示美国数据,1表示英国数据。接着,我们使用np.hstack
将这些列添加到原始数据中。最后,我们使用np.vstack
将美国和英国的数据垂直堆叠在一起,形成一个包含所有数据的最终数组。
二.这段代码的主要目的是加载美国YouTube视频数据,提取评论数量的数据,并对这些数据进行处理和可视化。
# coding=utf-8
import numpy as np
from matplotlib import pyplot as plt
# 定义CSV文件的路径
us_file_path = './youtube_video_data/US_video_data_numbers.csv'
uk_file_path = './youtube_video_data/GB_video_data_numbers.csv'
# 使用numpy的loadtxt函数加载CSV文件,指定分隔符为逗号,数据类型为整数
t_us = np.loadtxt(us_file_path, delimiter=",", dtype=int)
# 取评论数量的数据,假设评论数量在最后一列
t_us_comment_num = t_us[:, -1]
# 选择评论数量小于等于5000的数据
t_us_comment_num = t_us_comment_num[t_us_comment_num <= 5000]
# 打印评论数量的最大值和最小值
print(t_us_comment_num.max(), t_us_comment_num.min())
# 设置直方图的组距
d = 50
# 计算直方图的组数
bin_nums = (t_us_comment_num.max() - t_us_comment_num.min()) // d
# 设置图形的大小和分辨率
plt.figure(figsize=(20, 10), dpi=80)
# 绘制直方图
# bins参数设置组数,color设置直方图颜色,edgecolor设置直方图边框颜色
plt.hist(t_us_comment_num, bins=bin_nums, color='steelblue', edgecolor='black')
# 显示图形
plt.show()
这段代码首先加载了美国YouTube视频数据,提取了评论数量的数据,并选择了评论数量小于等于5000的数据。然后,它计算了直方图的组数,并设置了图形的大小和分辨率。最后,它绘制了直方图,显示了评论数量的分布情况。效果如下:
三.这段代码的主要目的是加载英国YouTube视频数据,提取喜欢数和评论数的数据,并对这些数据进行处理和可视化。
# coding=utf-8
import numpy as np
from matplotlib import pyplot as plt
# 定义CSV文件的路径
us_file_path = './youtube_video_data/US_video_data_numbers.csv'
uk_file_path = './youtube_video_data/GB_video_data_numbers.csv'
# 使用numpy的loadtxt函数加载CSV文件,指定分隔符为逗号,数据类型为整数
t_uk = np.loadtxt(uk_file_path, delimiter=",", dtype=int)
# 选择喜欢数量小于500000的数据
t_uk = t_uk[t_uk[:, 1] <= 500000]
# 提取评论数和喜欢数的数据
t_uk_comment = t_uk[:, -1] # 假设评论数在最后一列
t_uk_like = t_uk[:, 1] # 假设喜欢数在第二列
# 设置图形的大小和分辨率
plt.figure(figsize=(20, 8), dpi=100)
# 绘制散点图,x轴为喜欢数,y轴为评论数
# color设置散点颜色,label设置图例标签
plt.scatter(t_uk_like, t_uk_comment, color='blue', label='UK')
# 添加拟合曲线
# 使用numpy的polyfit函数进行一元线性拟合,返回拟合系数
popt = np.polyfit(t_uk_like, t_uk_comment, 1)
# 使用拟合系数创建一个多项式函数
f = np.poly1d(popt)
# 绘制拟合线,颜色为红色,标签为'UK fit line'
plt.plot(t_uk_like, f(t_uk_like), "r-", label='UK fit line')
# 设置x轴和y轴的标签
plt.xlabel("like")
plt.ylabel("comment")
# 显示图例
plt.legend()
# 显示图形
plt.show()
这段代码首先加载了英国YouTube视频数据,并选择了喜欢数小于500000的数据。然后,它提取了评论数和喜欢数的数据,并绘制了散点图。接着,它添加了一个拟合曲线,显示了喜欢数和评论数之间的关系。最后,它设置了图形的大小、分辨率、坐标轴标签和图例,并显示了图形。效果如下:
上方代码涉及到的csv文件如下
youtube_video_datahttps://wwt.lanzoum.com/iGp7c1o5tu0f