整合練習:寶可夢的 z 分數
已在你的工作階段載入含有 720 隻寶可夢的清單 names。每隻寶可夢對應的生命值(Health Points, HP)存放在名為 hps 的 NumPy 陣列中。你想用z 分數分析 HP,看看每隻寶可夢的 HP 距離所有 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')