利用numpy库进行数据分析

一.这段代码的主要目的是加载美国和英国的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_dataicon-default.png?t=N7T8https://wwt.lanzoum.com/iGp7c1o5tu0f 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

NJU_AI_NB

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

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

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

打赏作者

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

抵扣说明:

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

余额充值