すべてをまとめよう:ポケモンのzスコア
720匹のポケモンのリストが names として読み込まれています。各ポケモンに対応するHP(Health Points)は NumPy 配列 hps に保存されています。全体の平均から各ポケモンのHPが標準偏差何個分離れているかを示す zスコア を使って、HPを分析したいとします。
以下のコードは、各ポケモンのHPのzスコアを計算し、zスコアに基づいてHPが高いポケモンを集めるために書かれたものです。
poke_zscores = []
for name,hp in zip(names, hps):
hp_avg = hps.mean()
hp_std = hps.std()
z_score = (hp - hp_avg)/hp_std
poke_zscores.append((name, hp, z_score))
highest_hp_pokemon = []
for name,hp,zscore in poke_zscores:
if zscore > 2:
highest_hp_pokemon.append((name, hp, zscore))
この演習はコースの一部です
効率的なPythonコードの書き方
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Calculate the total HP avg and total HP standard deviation
hp_avg = ____.____
hp_std = ____.____
# Use NumPy to eliminate the previous for loop
z_scores = (____ - ____)/____
# Combine names, hps, and z_scores
poke_zscores2 = [*____(names, hps, z_scores)]
print(*poke_zscores2[:3], sep='\n')