【毎日Python】Pythonで配列の平均を算出する方法|numpy.mean,nanmean

Pythonで配列の平均を算出する方法について説明します。
この記事では、Pythonのnumpyライブラリのmean関数とnanmean関数について解説をします。
欠損値がない場合は、mean関数を使います。
欠損値がある場合は、nanmean関数を使います。

この記事の信頼性

この記事は、Youtubeにて日本最大級のプログラミング教育のチャンネルを運営しているキノコードが執筆、監修しています。
私自身は、2012年からプログラミング学習を始め、2019年以降はプログラミング教育に携わってきた専門家です。
他にも、私には下記のような実績や専門性があります。

  • キノコードは毎月10名以上、合計100名以上ののプログラミング学習者と1対1でお悩みを聞き、アドバイスをしています
  • キノコード自身は、プログラミングスクールに通ったり、本や有料åの動画で勉強してきた経験もあります
  • キノコードは、プログラミング学習サービス「キノクエスト」を運営しています
  • 本の出版、プログラミング雑誌への寄稿の実績があります

Pythonのnumpyライブラリのmean関数

まず、mean関数について説明します。

import numpy as np

まず、このような1次元配列で試してみましょう。

a = np.array([1, 5, 12, 0, 5, 1]) 

mean関数の引数に配列を指定して実行します。
平均を算出することができました。

np.mean(a)
#実行結果
4.0

次に、2次元配列で試してみましょう。

a_2 = np.reshape(a_1,(2,3))
a_2
#実行結果
array([[ 1,  5, 12],
       [ 0,  5,  1]])

まず、行ごとの平均を算出してみます。
引数axisに1を渡して実行します。
行ごとの平均を、配列で取得することができました。

np.mean(a_2, axis=1)
#実行結果
array([6., 2.])

続けて、列ごとの平均を算出してみます。
引数axisに0を渡して実行します。
列ごとの平均を、配列で取得することができました。

np.mean(a_2, axis=0)
#実行結果
array([0.5, 5. , 6.5])

欠損値が含まれている場合には、nanmean関数

なお、mean関数の場合、指定の配列に欠損値が含まれているとnanが返されます。

a_3 = np.array([1, 5, 12, 0, 5, np.nan]) 
np.mean(a_3)
#実行結果
nan

そのため、欠損値を除いて配列の平均を算出する場合は、nanmean関数を使用しましょう。

np.nanmean(a_3)
#実行結果
4.6

Python学習サービス「キノクエスト」のご紹介

キノコードでは、Pythonを習得するためのPython学習サービス「キノクエスト」を運営しています。
キノクエストには、学習カリキュラムがあり、学習順番に悩むことなく学習を進められます。
月額1,990円と本1冊分の値段です。

キノクエストの特徴は下記の通りです。
・Python学習をしている仲間が集まるコミュニティがある
・1000問以上の問題を解いてプログラミングを習得
・環境構築不要ですぐに始められる
・動画と連動しているので、インプットもできる
・月額1,990円で、コミュニティもセット

キノクエストを詳しく知りたい方は、紹介ページをご覧ください。

▼キノクエストの紹介ページはこちら▼
https://kino-code.com/kq_service_a/