-
数据集下载
!wget -O pokemon_data.csv https://pai-public-data.oss-cn-beijing.aliyuncs.com/pokemon/pokemon.csv
-
准备工作
import numpy as np
import pandas as pd
因为宝可梦的攻击力会直接乘以它们所对抗的宝可梦属性相克值,所以在对道馆训练家的宝可梦未知的前提下,所拥有6只宝可梦的总对抗属性权重越高,基础值越高就说明总体战斗力越强。即against值加起来×base_total
# 能力测评 属性值加起来×base_total
def ability_value(x, output_number):
pokemon = x.copy()
pokemon = pokemon[pokemon.is_legendary == 0] #因为是平民策略,把神兽都排除掉
Xlist = [] # Xlist 是所有feature name,也就是宝可梦的所有属性名
for line in pokemon:
row = line.strip().split(",")
Xlist.append(row)
against_data = pokemon[Xlist[1]]
Xlist = np.array(Xlist)
for i in range(2, 18):
# against_data 为所有的against_??权值加起来的总和,和战斗力成正相关
against_data = against_data + np.array(pokemon[Xlist[i]])
base_total_value = pokemon["base_total"]
battle_value = against_data.mul(base_total_value, axis=0)
rank_value = battle_value.sort_values(by=[