Pythonのstatisticsを使用し最頻値(モード)を計算する

Pythonのstatisticsを使用し最頻値(モード)を計算してみます。

最頻値 (モード)とは、データや確率分布で頻度(度数)の最も多い数値。統計での代表となる値です。

statisticsは、Pythonの標準ライブラリとなっていますので、事前にインストールする必要がありません。

■Python

Google Colaboratory(Google Colab),Python3.7.10

■statisticsを使用し最頻値(モード)を計算する

では、早速statisticsを使用し最頻値(モード)を計算するスクリプトを書いていきます。

■コード

import statistics

statistics.mode([1,1,1,2,2,3,4,5,6])

importでstatisticsモジュールを呼び出します。呼び出した後に、statistics.mode()関数を用います。関数の括弧内には、引数,パラメータとして、角括弧”[ ]”を使用し定義したリストを渡します。リスト内には要素(数値)を格納します。

これで、最頻値(モード)が計算され、結果が返されます。

■実行・検証

このコードを実行してみます。

実行してみると、statisticsモジュールを呼び出し、statistics.mode()関数を用いたことで、括弧内に渡したリスト内の最頻値(モード)が計算され、頻度(度数)の最も多い数値が返されました。

■最頻値(モード)が複数の場合

では、次にstatistics.mode()関数を用いて、括弧内に最頻値が複数格納されている場合はどうなるのかやってみます。

■コード

import statistics

statistics.mode([1,1,1,2,2,2,3,4,5,6])

■実行・検証

このコードを実行してみます。

---------------------------------------------------------------------------
StatisticsError Traceback (most recent call last)
<ipython-input-2-62aa827d7dc7> in <module>()
1 import statistics
2
----> 3 statistics.mode([1,1,1,2,2,2,3,4,5,6])

/usr/lib/python3.7/statistics.py in mode(data)
504 elif table:
505 raise StatisticsError(
--> 506 'no unique mode; found %d equally common values' % len(table)
507 )
508 else:

StatisticsError: no unique mode; found 2 equally common values

実行してみると、StatisticsErrorというエラーが発生しました。エラーの内容を確認すると「no unique mode; found 2 equally common values(ユニークなモードはなく、同じように一般的な2つの値を発見)」と出力されており、最頻値(モード)が2つ発見されているため、エラーとなっていることが確認できました。

コメント

タイトルとURLをコピーしました