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

目录

一、引言

二、任务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)

 

 

 

 

 

 

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

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

相关文章

[golang 微服务] 7. go-micro框架介绍,go-micro脚手架,go-micro结合consul搭建微服务案例

一.go-micro框架 前言 上一节讲解了 GRPC微服务集群 Consul集群 grpc-consul-resolver相关的案例,知道了微服务之间通信采用的 通信协议&#xff0c;如何实现 服务的注册和发现&#xff0c;搭建 服务管理集群&#xff0c;以及服务与服务之间的 RPC通信方式,具体的内容包括: pro…

聊聊微服务到底该如何划分

背景 现在动不动就是微服务架构&#xff0c;但是微服务划分的合理与否会极大的影响开发过程中的复杂度&#xff0c;划分的重要性不言而喻&#xff0c;但是在微服务划分这条路上并没有银弹&#xff0c;有的说DDD可以解决微服务的划分问题&#xff0c;吕哥想说的是那只是理论上的…

端午作业1

只要文件存在&#xff0c;就会有唯一对应的inode号&#xff0c;且相应的会存在一个struct inode结构体。在应用层通过open&#xff08;&#xff09;打开一个设备文件&#xff0c;会对应产生一个inode号&#xff0c;通过inode号可以找到文件的inode结构体 根据inode结构体中文件…

JMU20 软件工程经济学 复习总结

文章目录 碎碎念0. 基准收益率 i1. 现金流量图2. 净现值 NPV&#xff0c;内部收益率 IRR3. 单利&#xff0c;复利计算4. 等额年金NAV5. 动态回收期 P t ′ P_t Pt′​6. 固定资产折旧 [书P44]7. 增值税8. 软件行业增值税的即征即退9. 利息备付率 ICR&#xff0c;偿债备付率 DSC…

C语言学习(二十六)---指针练习题(二)

在上节的内容中&#xff0c;我们进一步学习了有关指针的内容&#xff0c;并做了一些关于指针的题目&#xff0c;今天我们将继续练习一些指针的题目&#xff0c;以便大家更好的理解和掌握指针的知识&#xff0c;好了&#xff0c;话不多说&#xff0c;开整&#xff01;&#xff0…

GreasyFork+Github

GreasyForkGithub 好长时间没用 GreasyFork 了&#xff0c;最近在刷 Spring Boot 的各种知识点&#xff0c;其中很大时间都在学习 baeldung.com 这个站点。不知道是因为最近刷的勤了还是怎么的&#xff0c;这个网站经常会弹出一个“让我关闭广告阻拦插件”的提示框&#xff0c…

MongoDB集群管理(三)

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

超简单 display:flex教学

display 弹性盒子解释 Flex是Flexible Box的缩写&#xff0c;意为"弹性布局”&#xff0c;用来为盒状模型提供最大的灵活性。 它的作用&#xff1a; 它能够更加高效方便的控制元素的对齐、排列。 可以自动计算布局内元素的尺寸&#xff0c;无论这个元素的尺寸是固定的还是…

学习mysql

Mysql SQL语言的规则与规范SQL大小写规范注释数据导入指令 基本的SELECT语句SELECT.列的别名去掉重复行空值参与运算着重号(当有表名是关键字时)显示表结构where 运算符算术运算符 比较运算符号性运算符非符号形运算符空运算符非空运算符最小值运算符最大值运算符BETWEEN AND运…

Java的理论知识部分

文章目录 前言 一、Java的发展 1.1、Java的出现 1.2、Java官方网址 1.3、Java的平台 1.4、Java各版本新加的内容 1.5、java特点 1.6、Java的三种运行机制 1.7、Java的编译与运行 1.8、补充内容——华为鲲鹏jdk以及鲲鹏计算 二、面向对象程序编程 2.1、对象与类 2.2、Ja…

软考:软件工程:面向对象技术与UML,时序图,用例图,类对象,封装,继承,多态

软考&#xff1a;软件工程: 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff08;1&#…

Web3 将 MetaMask添加入谷歌浏览器 扩展程序中

Web3到现在理论这段是说的有点太多了 那么 我们先来看个东西 叫 MetaMask 这个在我们项目开发过程中需要使用 MetaMask是一个开源的以太坊的一个钱包 那么 钱包肯定就是用来管理数据资产的 MetaMask 是以一个浏览器插件形式存在的 它可以直接连接到以太坊的网络中来管理我们…

【软件工程】软件工程期末考试试卷

瀑布模型把软件生命周期划分为八个阶段&#xff1a;问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段&#xff1a;计划阶段、开发阶段和( C)。 A、详细计划 B、可行性分析 C、 运行阶段 D、 测试与排…

【运维】服务器系统安装 -- 服务器版

目录 一、环境 二、ubuntu 三、启动u盘制作 Stage 1&#xff1a;下载balena&#xff0c;制作U盘启动工具 Stage 2&#xff1a;下载Ubuntu 系统镜像&#xff08;参考上一节&#xff1a;Ubuntu 22.04.2 LTS &#xff09; Stage 3&#xff1a;将镜像写入到U盘 四、设置开启…

【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 战斗背景&#xff1a;做了个串口接收界面&#xff0c;用来接收传输过来的信号。但是光用数字显示太单调&#xff0c;需要用图线显示出来。 战略目标&#x…

腾讯云服务器镜像市场快速搭建WordPress博客网站教程

通过腾讯云服务器的镜像市场搭建WordPress网站非常简单&#xff0c;不需要手动配置WP所需的Web环境&#xff0c;一键即可安装WordPress博客&#xff0c;腾讯云百科使用腾讯云服务器通过镜像市场的WordPress镜像搭建WP网站教程&#xff1a; 目录 腾讯云服务器通过市场镜像安装…

计算机网络和Linux网络

计算机网络和Linux网络 计算机网络概论 什么是计算机网络 计算机网络&#xff08;结构上&#xff09; 由节点&#xff08;主机、网络交换设备设备&#xff09;、边&#xff08;通信设备&#xff09;、协议构成协议&#xff1a;对等层的实体在通讯过程中应该遵守的规则的集合&…

上位机与两台PLC之间无线以太网通信

本文以组态王和2台三菱FX5u PLC为例&#xff0c;介绍组态王与多台 PLC的无线以太网通信实现过程。在本方案中采用了三菱PLC无线通讯终端DTD419MB&#xff0c;作为实现无线通讯的硬件设备。 在这一无线以太网通讯系统的搭建中&#xff0c;用户无需更改网络参数和原有程序&#…

Docker-compose的使用

目录 Docker-compose 简介 docker-compose的安装 docker-compose.yaml文件说明 compose的常用命令 总结 Docker-compose 简介 Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。可以使用YAML文件来配置应用程序的服务。&#xff08;通俗讲是可以通过yml文…

【算法与数据结构】18、LeetCode四数之和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题的解法借助了【算法与数据结构】15、LeetCode三数之和的算法思想。首先我们进行排序&#xff0c;然…