Python和大数据告诉你,想要吃鸡您应该选择哪种PUBG武器组合?

Python016

Python和大数据告诉你,想要吃鸡您应该选择哪种PUBG武器组合?,第1张

使用Python,我找到了可以帮助您赢得梦寐以求的吃鸡的最佳武器组合

不久前,出于好奇,我下载了PUBG Mobile,以了解炒作的全部内容。为了大致了解 游戏 的运作方式:您从飞机上跳伞,然后撞上建筑物并开始寻找防护装备,弹药和武器,然后要么杀死他人,要么被他人杀死,最后一支生存下来的队伍赢得鸡肉晚餐。这个概念听起来很简单,是吗?然后,您撞上一栋建筑物,发现自己盯着五把不同的枪,枪口上的名字不知道它们之间的区别。每个玩家都可以装备两把枪,但是我应该怎么知道该选哪两把呢?我可能没有选择合适的对手,因为即使我多次开始射击,我也一直被对手杀死。因此,我决定,为什么不趁此机会提高我的Python技能(您知道当您实际上必须使用Google的"快捷键才能在Python上运行代码"时,您真的很生锈),并希望找到可以使我更好的东西。有机会带回家那顿鸡肉晚餐?请迅速做出决定:自从我上一次使用Python开发项目以来已经过去了两年,所以绝对欢迎提出有关如何以更好的方式编写代码的建议!和往常一样,我的代码托管在GitHub上。

我到处搜索关于PUBG武器统计数据的现成数据集,但最终没有找到(Kaggle有一个从官方API派生的关于玩家统计数据的数据集,该数据集可作为其他分析的有趣数据集)。 但是,我确实找到了提供武器统计信息的网站,因此我继续使用BeautifulSoup对官方的PUBG Wiki进行了一些网页抓取。 我将不涉及网络抓取过程的详细信息,因为我想将重点更多地放在数据分析部分上,因此我仅重点介绍一些部分。

尽管有一个页面提供所有武器的统计信息,但我希望能够将它们归类为各自的类型(例如,无论是突击步枪还是轻机枪),因此我最终从每个页面的相应页面抓取 将8个数据框合并为一个数据框之前的武器类型。

我还通过将其他网站的数据替换为丢失和怪异的数据(请参阅本文结尾处的数据)来清理丢失的数据,这些数据列出了在当前数据集中不需要替换的其他武器的可比较值。

之后,在将数据帧导出为csv文件之前,我将所有数字列都转换为float数据类型,以允许在后续数据分析中进行算术运算。

以下总结了每个功能的含义(只需最少的更改即可从PUBG Wiki复制和粘贴信息)

· DMG(命中伤害)

在装甲和其他减灾因素之前施加直接伤害

· SPD(初始子弹速度)

子弹离开枪口的速度,以每秒米为单位。 较高的数字意味着对遥远的移动目标所需的铅减少。

· PWR(身体碰撞冲击力)

射击布娃娃时会施加多大的力。 更高的价值意味着更大的推动力。

· MAG(每个Mag的弹药)

弹匣中可以容纳的最大弹药量。

· TBS(射击间隔)

重新发射武器之前必须经过的最短时间(以秒为单位)。

· 模式(射击模式)

该武器可以选择的模式。 在此字段中具有"单发","自动"的武器表示可以在单发射击模式或自动射击模式之间进行选择。

· BSHT(连拍)

如果适用,一次连发射击几张。

· BDEL(连拍延迟)

再次触发另一个突发之前必须经过的最短时间(以秒为单位)。

· AMM(弹药类型)

武器接受的弹药类型。

· CAP(容量)

也称为散装或占用的库存空间量。

· 附件(附件)

武器本身可以附带什么。 附件的示例包括一个范围,可以进行远距离狙击。

· BDMG 0,BDMG 1,BDMG 2,BDMG 3(身体伤害等级0,身体伤害等级1,身体伤害等级2,身体伤害等级3)

在以下情况下对身体造成的伤害:分别没有装备盔甲,没有装备1级背心,装备2级背心和3级背心。

· HDMG 0,HDMG 1,HDMG 2,HDMG 3(头部伤害等级0,头部伤害等级1,头部伤害等级2,头部伤害等级3)

在以下情况下对头部造成的伤害:未装备护甲,装备了1级护甲,装备了2级护甲和装备了3级护甲。

· 类型

我创建的一个变量,用于反映其所属的武器类型。

根据描述,似乎更重要的武器特征是:身体和头部的伤害(如果武器造成更大的伤害,则更有可能杀死对手),初始子弹速度(更快的子弹速度意味着 您的子弹可能会在对手击中您之前击中对手),两次射击之间的时间(通常需要多次射击才能杀死对手,因此两次射击之间的时间越短,您击败对手的机会就越大),每磁石弹药(如果您 可以为每个弹匣携带更多子弹,而您不必浪费那么多时间重新装弹)。

现在已经消除了所有棘手的细节,是时候玩得开心了。 让我们尝试通过绘制相关矩阵来找到不同功能之间的一些趋势。

快速浏览一下相关矩阵,可以发现不同级别的身体伤害之间的关联性非常好,不同级别的头部伤害也是如此。 因此,我们可以选择其中一个级别,让我们只使用BDMG 1和HDMG1。身体伤害和头部伤害也高度相关,这绝对不足为奇,但是现在,我们将继续 为了安全起见,我们相关矩阵中的两个变量都是安全的。 令人惊讶的是,伤害与身体和头部伤害之间的相关性较低。 由于身体和头部的伤害是直接影响玩家 健康 的因素,因此我们只从相关矩阵中删除伤害。

观察"杂乱无章"的相关矩阵,似乎在伤害与射击之间的时间(较高的伤害枪在射击之间的时间较长),伤害和速度(较高的伤害枪的子弹速度较慢)之间进行权衡。 每个弹药的弹药(更高伤害的枪支,每个弹匣可以携带更少的弹药)。 在这三个折衷方案中,前两个折衷方案对于赢得一场战斗更为关键,因此我们将重点放在它们上。 另外,鉴于身体伤害和头部伤害之间存在高度相关性,因此,我将仅从此刻开始着眼于头部伤害,以进一步简化事情。 简而言之,我们将研究3个变量:头部伤害等级1(HDMG 1),初始子弹速度(SPD)和射击间隔时间(TBS)。

首先,按武器类型绘制热图。 在显示实际热图之前,我将快速总结不同武器类型的缩写。

· 突击:突击步枪

· 弓:bo

· DMR:指定的神射手步枪

· LMG:轻机枪

· SG:Shot弹枪

· SMG:冲锋枪

· SR:狙击步枪

这进一步重申了我们早先发现的趋势-更高伤害的枪支往往具有较慢的子弹速度,并且两次发射之间的时间更长(我们仅以shot弹枪为例)。 正如本文开头所提到的,每个玩家都可以装备2支枪,因此,我想根据这2种折衷情况,找出哪种搭配最有利。

我首先绘制了一个热图,以比较不同的武器组合。 这似乎描绘了一幅相似的图,其中在伤害与速度之间以及在伤害与射击之间的时间之间进行权衡,但这并不是很清楚,因此相关矩阵也许可以更好地描述事物。

如我们所见,最大的折衷是在伤害和射击之间的时间之间,然后是伤害和速度。

当涉及权衡时,最好的组合是帕累托高效的组合。 帕累托高效到底是什么? 简而言之,如果您有两个目标,那么帕累托有效组合就是这样一种组合,您无法在一个目标上取得进步而又不使另一个目标恶化。 假设您有两个目标X和Y,这两个目标之间需要权衡。

点A的效率不高,因为存在一个点(例如A'),您在至少一个目标中的表现要好于其他目标。 点A'和A'都是帕累托有效的,因为不可能在不使另一个目标恶化的情况下为一个目标获得更高的价值。 例如,从点A'到点A',我们得到一个更高的X但一个更低的Y。一个Pareto前沿仅连接所有Pareto有效点。

在我们的案例中,我们要权衡两个因素,因此让我们分别来看一下。 我们将从伤害与射击间隔之间的更大权衡开始。

如上所示,帕累托有效组合为:

· 和冲锋枪

· 和轻机枪

· 和指定的神射手步枪

· 弹枪和冲锋枪

· 和Shot弹枪

我们不能说这些组合中的一种优于另一种,但是如果我想要一种组合在伤害和两次射击之间的时间上表现均等,那么选择2或3组合可能是个好主意。

损害与速度之间的权衡又如何呢?

在这种情况下,帕累托有效组合为:

· 突击步枪和轻机枪

· 突击步枪和狙击步枪

· 轻机枪和狙击步枪

· 指定的神射手步枪和狙击步枪

· 突击步枪和Shot弹枪

· 轻机枪和Shot弹枪

· 弹枪和狙击步枪

· 和Shot弹枪

再说一次,我们不能断定这些组合中的一种优于另一种,但是如果我想要一个组合在伤害和速度上都表现得相当不错的组合,那么最好选择5或6的组合。

归根结底,这实际上取决于您是要优先考虑伤害与射击间隔时间之间的权衡,还是损害与初始子弹速度之间的权衡。 然后,帕累托效率分析将提供一些武器组合,您可以选择,这取决于您是喜欢一种目标比另一目标好得多的组合,还是两种目标都相当平等的组合。 我会选择后者,因为进行此分析的目的是要找到一对具有不同优势的枪支,彼此互补。

话虽如此,我希望这种分析能帮助您赢得那顿鸡肉大餐!

数据集的功劳

· https://pubg.gamepedia.com

· https://www.futuregamereleases.com/2019/01/pubg-weapon-damage-charts-body-vs-headshot-limb-utility/

· https://pubgmap.io/weapons.html

提供网络抓取参考代码的信用

· Hackwagon学院

归功于帕累托边境代码

· https://pythonhealthcare.org/tag/pareto-front/

(本文翻译自Meredith Wan的文章《Which PUBG Weapon Combination Should You Pick?》,参考:https://towardsdatascience.com/which-pubg-weapon-combination-should-you-pick-f58bdc262082)

python一般认为是脚本语言,或者说是动态语言,速度慢肯定是所有解释性语言的缺点了,除此之外,python的多线程无法在多核上运行肯定也

是需要解决的问题,不过它最大的优点就是敏捷,堪称敏捷开发的典范,适合的场合分两种:专业人士来做一些有意思的事情,比如写一些很有意思的脚本啊(黑客

必学的语言之一);非专业人士用来做一些普通的事情,比如搭个自己的网站(django)或者一般的科学计算、格式转换等等。业界用python做web

开发其实蛮少,不过也有,web框架比较好用的就是django,比较适合快速开发程序员至少得会c语言吧,剩下的看需要。语言无所谓。只要人牛叉,什么

语言都能写出牛叉的程序。

-----

1. 支持OOP编程

从根本上讲Python仍是一种面向对象的语言,支持多态、继承等高级概念,在Python里使用OOP十分容易

没有C++、Java那样复杂,但不必做Python下OOp高手,够用即可。

2. 免费Python的使用是完全免费的,您可以从网络上免费下载、安装使用,

Python上的其他程序包,也可下载安装使用。

Python的免费的同时又有很多的的社区对用户的提问提出快速的技术支持,学习和使用Python技术不再是一个人在战斗!

3. 可移植性

Python的实现是用ansi c编写的,可以运行在目前所有主流平台上,手机、pad上均可运行Python程序,其下的程序包也具有可移植性。

4. 功能强大

从特性的观点上看,Python是一个混合体,他丰富的工具集使得他介于传统的脚本语言和系统语言之间。

------

python好不好,还在于自己的积累与感觉。如果你积累的多,游刃有余,会觉着它很好。从一般情况来看python是脚本语言之王,十年前是这样,十年后还是这样。

胶水是指,python借助C语言接口,几乎可以驱动所有已知的软件,模块。 只要我们用到的,通常你都能找到一个开源的库。安装后就可以驱动它。无论是数据库,网络,互联网,图形,游戏,科学计算,GUI,OA,自动控制,甚至宇航员都在用。

python通常不作为工程语言出现。就是正规的软件生产不使用它。主要用java, c#, xml, c。至于为什么,这是软件工程的需要。python不具有完整的语法检查。

python并不为特定目的而产生。虽然它更适用于系统维护。不过它就是一个通用的脚本语言。

从个人感觉来说,微软件东西,非常好,省心,一流的技术理念,开发工具是全世界最好的(没有之一)。不过,因为它只限于微软的平台,所以范围上大大

打了折扣。

世界上最流行的服务器还是unix和linux。而不是windows。桌面操作系统最流行的是windows。不过在所有的平台上都有C语言,大部分平

台,甚至手机平台都有python语言和它的执行环境。这是其它的所有语言,包括java几乎都很难做到的。

python严格说叫CPython,与C/c++有天然的融合性。这也是python强大的原因之一。在windows环境下可以使用

ironpython,这个版本与vc可以结合的比较好。其它的平台可以使用eclipse,不过最好还是直接使用普通的文本编辑器。比较推荐的一个编辑

器是sublime text2, geany, vi等。

python图形化编程不难。当然MFC也不难。我不认为MFC有多难。其实学习起来只是略难,但是这不是一个数量级的。MFC可以生产出非常强劲的界面。而python界面多属于简单的。

虚拟机可以跑linux,配置好就可以。也可以独立安装一个linux。也可以直接在windows下学习python。没有太多区别。建议你买一个200多元的树莓派,很好玩。安装的是linux操作系统。

IDLE是我初学,甚至几年中用得最多的。后来有了sublime才基本上不用它。idle只有一个缺点,就是有时候程序大了,输入键盘会有感觉延迟。

---

python应用的很多的呀,web的比如豆瓣,还有非常多的网页游戏的后端。我知道的都是作为后台服务,无论开发速度还是调试之类的都很好。前端的应用产品虽然python可以实现,但是在GUI方面的开发效率还是没有VS或者XCode快。

----

如果说c是剑,c++是刀,java是枪的话,python就是飞刀,学精了可以成为李寻欢那样的高手,当作常规武器用,不过绝大多数人只能把飞刀当作暗器,在某些特定场合,出奇制胜

----

做web开发肯定首选php 数据挖掘首选python

--

Python的web框架很多,比如Django,webpy等 - webpy