1. 学ぶ
  2. /
  3. コース
  4. /
  5. 効率的なPythonコードの書き方

Connected

演習

ループを使わずに求めるポケモンの合計値と平均値

720匹のポケモンのリストが names として読み込まれています。各ポケモンに対応する統計量は NumPy 配列 stats として読み込まれています。stats の各行は names の各ポケモンに対応し、各列はそれぞれ個別のステータス(HP、Attack、Defense、Special Attack、Special Defense、Speed)を表します。

最強のポケモンを見つけるために、各ポケモンの総合値(stats の各行の合計)と平均値(stats の各行の平均)を集計したいとします。

以下は、これらの値を集めるために書かれた for ループです。

poke_list = []

for pokemon,row in zip(names, stats):
    total_stats = np.sum(row)
    avg_stats = np.mean(row)
    poke_list.append((pokemon, total_stats, avg_stats))

指示

100 XP
  • 上の for ループを NumPy を使って置き換えてください。
    • .sum() メソッドで正しい軸を指定して、合計の配列(total_stats_np)を作成します。
    • .mean() メソッドで正しい軸を指定して、平均の配列(avg_stats_np)を作成します。
    • names リスト、total_stats_np 配列、avg_stats_np 配列を結合して、最終的な出力リスト(poke_list_np)を作成します。