利用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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/385391.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaI/O流 File类(目录)

目录 File类目录操作实例 File类目录操作 Java的File类提供了对文件和目录进行操作的方法。对于目录&#xff0c;File类提供了以下一些方法&#xff1a; 判断目录是否存在&#xff1a;使用exists()方法可以判断目录是否存在。创建目录&#xff1a;使用mkdir()或mkdirs()方法可…

Java奠基】玩转字符串从基础到高级的操作技巧

目录 初识String StringBuilder StringJoiner 字符串原理 综合练习 初识String java.lang.String 类代表字符串&#xff0c;Java程序中的所有字符串文字(例如“abc”)都为此类的对象&#xff0c;例&#xff1a; String name "张三" 当使用双引号直接赋值时&…

Java语法学习反射

Java语法学习反射 大纲 基本介绍class的介绍 具体案例 1. 基本介绍 流程图&#xff08;程序在计算机的阶段&#xff09; 反射的主要的类 这个提高效率不大 2. class的介绍 对于第三点&#xff1a;首先类只会加载一次&#xff0c;得到的class的对象&#xff0c;也只有一…

【北邮鲁鹏老师计算机视觉课程笔记】07 Local feature-Blob detection

【北邮鲁鹏老师计算机视觉课程笔记】07 Local feature-Blob detection 1 实现尺度不变性 不管多近多远&#xff0c;多大多小都能检测出来 找到一个函数&#xff0c;实现尺度的选择特性 2 高斯偏导模版求边缘 做卷积 3 高斯二阶导拉普拉斯 看哪个信号能产生最大响应 高斯…

Linux进程创建,进程终止,进程等待,进程程序替换,简易shell代码

进程创建 fork函数初识 fork函数&#xff1a;从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;子进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用 f…

web前端(第一天HTML)

前端是什么&#xff1f; 网页&#xff1f; 将数据以各种方式&#xff08;如&#xff1a;表格、饼图、柱状图等&#xff09;呈现给用户&#xff0c;我们就可以称之为前端。 做前端所需要的工具&#xff1f; notepad 、 editplus 、 notepad 、 vscode 、 webstorm 等&#x…

Linux:搭建docker私有仓库(registry)

当我们内部需要存储镜像时候&#xff0c;官方提供了registry搭建好直接用&#xff0c;废话少说直接操作 1.下载安装docker 在 Linux 上安装 Docker Desktop |Docker 文档https://docs.docker.com/desktop/install/linux-install/安装 Docker 引擎 |Docker 文档https://docs.do…

[C++]17:二叉树进阶

二叉树进阶 一.二叉搜索树&#xff1a;1.二叉搜索树的概念&#xff1a;2.二叉搜索树的实现---循环版本&#xff1a;1.二叉搜索树的基本结构&#xff1a;2.查找&#xff1a;3.插入&#xff1a;4.中序遍历&#xff1a;5.删除&#xff1a; 3.二叉搜索树的实现---递归版本&#xff…

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-软件定时器

目录 一、软件定时器基本概念二、软件定时器运行机制三、软件定时器状态四、软件定时器模式五、软件定时器开发流程六、软件定时器使用说明七、软件定时器接口八、代码分析&#xff08;待续...&#xff09;坚持就有收获 一、软件定时器基本概念 软件定时器&#xff0c;是基于系…

java SpringBoot2.7整合Elasticsearch(ES)7 带条件分页查询与不带条件分页查询演示讲解

上文 java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改 我们带着大家 整合了 Elasticsearch 对索引中的文档做了 各方面操作 然后 我们来说说 分页查询 这里 为了方便大家看 我加了五条数据进去 这里 我们仍然需要带个条件 这里 我们用name Mapper 接口 加一个这…

vue3 解决ionic安卓版顶部状态栏空白问题

问题展示&#xff1a; 解决&#xff1a;引入capacitor/status-bar npm install capacitor/status-bar npx cap sync在需要设置状态栏的组件上设置背景跟颜色即可

Vue3快速上手(四)ref之基本类型响应式数据

一、ref之基本类型响应式数据 1.1 基本语法 import { ref } from vuelet x ref(初始值)console.log(xxx --> , x.value);x为一个RefImpl对象&#xff0c;该对象的value属性为实际值&#xff0c;在script里需要操作x.value来改变数据的值&#xff0c;在页面里则可以直接使…

rem基础+媒体查询+Less基础

一&#xff0c;rem基础 二&#xff0c;媒体查询 2.1什么是媒体查询 2.2语法规范 2.3媒体查询rem实现元素动态大小的变化 2.4 引入资源&#xff08;理解&#xff09; 三&#xff0c;Less基础 1 维护css的弊端 2 Less介绍 3 Less变量 变量命名规范 4 Less嵌套 5 Less…

WebSocket原理详解

目录 1.引言 1.1.使用HTTP不断轮询 1.2.长轮询 2.websocket 2.1.概述 2.2.websocket建立过程 2.3.抓包分析 2.4.websocket的消息格式 3.使用场景 4.总结 1.引言 平时我们打开网页&#xff0c;比如购物网站某宝。都是点一下列表商品&#xff0c;跳转一下网页就到了商品…

消息中间件面试篇

消息中间件 RabbitMQ 消息不丢失 可能导致消息丢失的情况&#xff1a; 生产者发送消息丢失消息队列宕机消费者服务宕机&#xff0c;未接收到消息 生产者确认机制 该机制解决了生产者发送消息有可能丢失的问题。 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程…

AWD-Test2

1.已知账号密码&#xff0c;可SSH连接进行代码审计。2.登录可万能密码进入&#xff0c;也可注册后登录。3.修改url参数&#xff0c;发现报错。确定为Linux系统4.写入一句话&#xff0c;并提交。&#xff08;也可以文件上传&#xff0c;这里采用简洁的方法&#xff09; <?p…

RPC技术分享

一、微服务与RPC技术分享 1.1 微服务简介 微服务架构是一种软件设计和开发的模式&#xff0c;将应用程序拆分为一组小型、独立的服务。每个服务运行在自己的进程中&#xff0c;并使用轻量级通信机制进行协同工作。微服务架构通过提高灵活性、可维护性和可伸缩性来改进大型系统…

LeetCode.145. 二叉树的后序遍历

题目 145. 二叉树的后序遍历 分析 上篇文章我们讲了前序遍历&#xff0c;这道题目是后序遍历。 首先要知道二叉树的后序遍历是什么&#xff1f;【左 右 根】 然后利用递归的思想&#xff0c;就可以得到这道题的答案&#xff0c;任何的递归都可以采用 栈 的结构来实现&#…

备战蓝桥杯---动态规划(入门2)

今天主要介绍区间dp比较难的题&#xff1a; 下面是分析&#xff1a; 我们如果先固定点V0&#xff0c;那我们得去枚举两个点使它构成三角形&#xff0c;同时求目标值也比较难确定&#xff08;起始与终止都带0&#xff09;&#xff0c;于是我们考虑固定边&#xff0c;我们固定v0…

16 亚稳态原理和解决方案

1. 亚稳态原理 亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。在同步系统中&#xff0c;输入总是与时钟同步&#xff0c;因此寄存器的setup time和hold time是满足的&#xff0c;一般情况下是不会发生亚稳态情况的。在异步信号采集中&#xff0c;由于异步…