对英雄联盟英雄属性数据的预处理及相似度矩阵计算

news2024/12/24 2:26:29

目录

一、引言

二、任务1

1、填充缺失值

2、用中位数填充“生命值”属性列缺失值

3、 用均值填充“生命值”属性列缺失值

三、任务2


注:英雄联盟英雄属性数据资源可在博客资源中自行获取。

一、引言

英雄联盟作为一款古早的刀塔游戏,可谓之刀塔游戏的鼻祖,这款游戏陪伴我们度过了学生时代。

下面将获取到的英雄联盟的英雄属性数据进行缺失值的填充并对修复后的数据计算前十位角色的相似性矩阵进行分析。

二、任务1

检查原始数据中缺失值情况,并用中位数填充“生命值”属性列缺失值,用均值填充“魔法值”属性列缺失值。

1、填充缺失值

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
pd1 = pd.read_csv("D:\\dataspace\\lolData.csv")
print('缺失值情况',pd1.isnull().sum())
life = pd1.iloc[:,2].values
magic=pd1.iloc[:,4].values

检验缺失值情况如下图: 

 2、用中位数填充“生命值”属性列缺失值

lifelist=[]
for i in range(len(life)):
    if life[i]>0 and life[i]<800:
        lifelist.append(life[i])
print(lifelist)
median1=int(np.median(lifelist))
print(median1)
for i in range(len(life)):
    if life[i]<=0 or life[i]>=800 or np.isnan(life[i]):
        life[i]=median1
print('处理后的生命值数据',life)

3、 用均值填充“生命值”属性列缺失值

magiclist=[]
for i in range(len(magic)):
    if magic[i]>0 and magic[i]<800:
        magiclist.append(magic[i])
print(magiclist)
mean=int(np.mean(magiclist))
print(mean)
for i in range(len(magic)):
    if magic[i]<=0 or magic[i]>=800 or np.isnan(magic[i]):
        magic[i]=mean
print('处理后的魔法值数据',magic)

 

三、任务2

根据任务1修复后的数据,计算数据表中前十位角色的相似性矩阵,并找出距离最近的和距离最远的两位角色

幻翎 洛

逆羽 霞

青钢影 卡蜜尔

翠神 艾翁

暴怒骑士 克烈

岩雀 塔莉垭

铸星龙王 奥瑞利安·索尔

戏命师 烬

海兽祭司 俄洛伊

永猎双子 千珏

 首先计算数据表中前十位角色的相似性矩阵。

head1=pd1.head(10)
head1=pd.DataFrame(head1)
head2=head1.drop(columns="英雄名字")
# print(head1)

res= np.zeros((10,10))

def cosine_similarity(x, y):
    x=np.array(x)
    y=np.array(y)
    num = np.dot(x,y)
    denom = np.linalg.norm(x) * np.linalg.norm(y)
    return num / denom
for i in range(10):
    for j in range(10):
        res[i][j]= cosine_similarity(head2.iloc[i,:],head2.iloc[j,:])
print(res)

 

计算欧氏距离。 

def dist(x,y):
    x = np.array(x)
    y = np.array(y)
    dist1 = np.linalg.norm(x-y)
    return dist1
dist11=[]
for i in range(10):
    for j in range(i+1,10):
        dist2= dist(head2.iloc[i,:],head2.iloc[j,:])
        dist11.append(dist2)
        print("{0}和{1}的欧几里得距离为{2}".format(i, j,dist2))
print('欧几里得距离\n',dist11)
print('最大值:',max(dist11))
print('最小值',min(dist11))
print(np.argmin(dist11))
print(np.argmax(dist11))

 

 找出距离最近和最远的两位角色。

for i in range(10):
    for j in range(i+1,10):
        if dist(head2.iloc[i, :], head2.iloc[j, :])==min(dist11):
            print("{0}和{1}的欧几里得距离最小".format(i, j))
            a=head1.iloc[i,1]
            b=head1.iloc[j,1]
            print("距离最小的两个英雄是:")
            print(a,'|',b)
        elif dist(head2.iloc[i, :], head2.iloc[j, :])==max(dist11):
            print("{0}和{1}的欧几里得距离最大".format(i, j))
            a = head1.iloc[i, 1]
            b = head1.iloc[j, 1]
            print("距离最大的两个英雄是:")
            print(a, '|', b)

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jumpserver-v2.2.2【部署教程】

目录 什么是 跳板机 跳板机的缺点 使用堡垒机的优势 jumpserver的组件 【1】时间同步 【2】安装依赖 【3】修改数据库字符集、创建远程用户 【4】创建python的虚拟环境&#xff0c;用于专门运行jumpserver的环境 【5】获取jumpserver的代码 【6】安装编译环境依赖 …

【管理系列-09】软件成本怎么评估,知己知彼才能做软件造价

项目来了&#xff0c;总要叫来几个人&#xff0c;讨论一下成本是多少&#xff0c;能不能接&#xff0c;作为研发经理&#xff0c;能够较为合理的评估成本是一项必备技能&#xff0c;如何科学合理的评估&#xff0c;达到对内对外都满意&#xff0c;我想这是每个研发经理的必修课…

管理类联考——逻辑——知识篇——分析推理——四、数字——haimian

数字 题型识别 与数字相关的分析推理题在逻辑科目中扮演着非常重要的角色&#xff0c;可能涉及方程、不等式、分子与分母比值关系、百分比、概率、集合运算等&#xff0c;可结合数学方法或利用数字规律进行解题。 思维导图 常用公式 从某种意义上说&#xff0c;数学本身就是…

五、浅析[ElasticSearch]底层原理与分组聚合查询

目录 一、ElasticSearch文档分值_score计算底层原理1.boolean model2.relevance score算法2、分析一个document上的_score是如何被计算出来的 二、分词器工作流程1.character filter、tokenizer、token filter2、内置分词器的简单介绍3、定制分词器3.1默认的分词器--standard3.…

《教我兄弟学Android逆向13 xpose改机开发01-环境设置》

上一篇 《教我兄弟学Android逆向12 编写xposed模块》 我们了解了xpose的基本原理并一起搭建了xpose的hook环境&#xff0c;你也很好的完成了课后作业&#xff0c;但是通过后面的测试练习你发现xpose在不同系统环境的安装方法是不一样的,在我们之前的低系统手机上面直接安装就能…

LNMP六个实验

目录 访问状态统计配置 基于授权的访问控制 基于客户端的访问控制 基于域名的 Nginx 虚拟主机 基于IP 的 Nginx 虚拟主机 基于端口的 Nginx 虚拟主机 总结 访问状态统计配置 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块 修改 nginx.conf 配置文件&#xff0c;…

Python基础四

目录 一、Python数据类型--列表 1.列表的下标 2.访问列表中的元素 3.更新列表元素 4.删除列表元素 5.列表脚本操作符 6.列表截取与拼接 截取 拼接 7.嵌套列表 8.列表比较 二、Python内置函数--列表相关 一、Python数据类型--列表 Python中的列表类似于java的数组 列…

Rust语言从入门到入坑——(7)Rust 错误处理

文章目录 0 引入1、可恢复错误2、可恢复错误递归3、不可恢复错误4、kind 方法5、总结 0 引入 Rust 有一套独特的处理异常情况的机制&#xff0c;程序中一般会出现两种错误&#xff1a;可恢复错误和不可恢复错误。 1、可恢复错误的典型案例是文件访问错误&#xff0c;如果访问一…

RVEA算法

RVEA 1 目标函数2 预备知识3 参考向量引导选择4 更新参考向量5 流程6 代码7 运行效果 1 目标函数 min ⁡ X f ( X ) ( f 1 ( X ) , f 2 ( X ) , . . . , f M ( X ) ) \min_{\small{X}} \pmb{f(\small{X})} (f_1(\small{X}), f_2(\small{X}), ..., f_M(\small{X})) Xmin​f(X)…

数据结构——快速排序的介绍

快速排序 快速排序是霍尔(Hoare)于1962年提出的一种二叉树结构的交换排序方法。快速排序是一种常用的排序算法&#xff0c;其基本思想是通过选择一个元素作为"基准值"&#xff0c;将待排序序列分割成两个子序列&#xff0c;其中一个子序列的元素都小于等于基准值&am…

DAY29:回溯算法(四)组合总和+组合总和Ⅱ

文章目录 39.组合总和思路伪代码为什么传入i而不是i1&#xff0c;不会导致无限循环 完整版剪枝优化剪枝修改完整版补充&#xff1a;std::sort升降序的问题&#xff08;默认升序&#xff09; 40.组合总和Ⅱ思路最开始的写法debug测试&#xff1a;逻辑错误修改完整版&#xff1a;…

营销策划报告个人心得

营销策划报告个人心得篇1 20__年3月27日晚&#xff0c;我们12级市营专业的同学们早早的来到了大成楼。根据网络营销与策划课程实训要求&#xff0c;覃希老师邀请了校外企业经理给我们进行产品培训。 我们按实训项目分别安排在C302和C304教室培训&#xff0c;培训中同学们认认真…

基于深度学习的高精度水果检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度水果&#xff08;苹果、香蕉、葡萄、橘子、菠萝和西瓜&#xff09;检测识别系统可用于日常生活中或野外来检测与定位水果目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的水果目标检测识别&#xff0c;另外支持结果可视…

OpenGL 模板测试

1.示例效果图 选中模型对象&#xff0c;出现模型轮廓。 2.简介 当片段着色器处理完一个片段之后&#xff0c;模板测试会开始执行&#xff0c;和深度测试一样&#xff0c;它也可能会丢弃片段。接下来&#xff0c;被保留的片段会进入深度测试&#xff0c;它可能会丢弃更多的片…

MongoDB集群管理(三)

MongoDB集群管理 集群介绍 为什么使用集群 随着业务数据和并发量的增加&#xff0c;若只使用一台MongoDB服务器&#xff0c;存在着断电和数据风险的问题&#xff0c;故采用Mongodb复制集的方式&#xff0c;来提高项目的高可用、安全性等性能。 MongoDB复制是将数据同步到多个…

LNMP (Nginx网站服务) nginx 平滑升级

目录 1.1 Nginx的简介 1.2 Apache与Nginx的区别 Nginx对比Apache的优势&#xff1a; 1.3 Nginx的进程 Nginx的两个进程&#xff1a; 同步&#xff0c;异步&#xff0c;阻塞&#xff0c;非阻塞的概念补充 阻塞与非阻塞 同步和异步 2.1 编译安装Nginx 2.1 .1 关闭防火墙…

两点边值问题的有限元方法以及边值条件的处理示例

文章目录 引言题目补全方程刚度矩阵构造基底边值条件非齐次左边值条件非齐次右边值条件非齐次非齐次边值条件有限元方程 求数值解直接求总刚度矩阵先求单元刚度矩阵 引言 本文参考李荣华教授的《偏微分方程数值解法》一书 题目 对于非齐次第二边值问题 { − d d x ( p d u …

陶哲轩甩出调教GPT-4聊天记录,点击领取大佬的研究助理

量子位 | 公众号 QbitAI 鹅妹子嘤&#xff0c;天才数学家陶哲轩搞数学研究&#xff0c;已经离不开普通人手里的“数学菜鸡”GPT了&#xff01; 就在他最新解决的一个数学难题下面&#xff0c;陶哲轩明确指出自己“使用了GPT-4”&#xff0c;后者给他提出了一种可行的解决方法…

【FFmpeg实战】avformat_find_stream_info() 函数源码解析

转载自地址&#xff1a;https://cloud.tencent.com/developer/article/1873836 先来看一下 avformat_find_stream_info() 的头文件里的注释对该函数的介绍&#xff0c;本文我们基于 FFmpeg n4.2 版本的源码分析。 /*** Read packets of a media file to get stream informatio…

Apikit 自学日记:创建 API 文档

Apikit 中一共有5种创建API文档的方式&#xff1a; 新建API文档 导入API文档&#xff0c;详情可查看《导入、导出API文档》 从模板添加API文档&#xff0c;详情可查看《API文档模板》 自动生成API文档&#xff0c;详情可查看《自动生成API文档》 IDEA插件注释同步API文档 …