Python でリストのモードを見つける

Samyak Jain 2023年1月30日
  1. Python で max() 関数とキーを使用してリストのモードを検索する
  2. Python でコレクションパッケージの Counter クラスを使用してリストのモードを検索する
  3. Python で statistics モジュールの mode() 関数を使用してリストのモードを検索する
  4. 統計モジュールの multimode() 関数を使用して、Python のモードのリストを検索する
Python でリストのモードを見つける

リストは、データのシーケンスを保持して反復するために Python で使用される最も強力なデータ構造の 1つです。数値、文字列などのさまざまなデータ型を含めることができます。

特定のデータセットでは、モードは最も高い頻度で表示される値または要素です。1つのモード、複数のモード、またはまったくモードがない場合があります。すべての要素が一意である場合、モードはありません。

このチュートリアルでは、Python でリストのモードを見つける方法について説明します。

Python で max() 関数とキーを使用してリストのモードを検索する

max() 関数は、指定されたデータセットの最大値を返すことができます。count() メソッドを使用した key 引数は、各要素がデータセットに存在する回数を比較して返します。
したがって、関数 max(set(list_name), key = list_name.count) は、リストの必須モードである、指定されたリストで最大回数発生する要素を返します。

例えば、

A = [10, 30, 50, 10, 50, 80, 50]
print("Mode of List A is % s" % (max(set(A), key=A.count)))
B = ["Hi", 10, 50, "Hi", 100, 10, "Hi"]
print("Mode of List B is % s" % (max(set(B), key=B.count)))

出力:

Mode of List A is 50
Mode of List B is Hi

この関数は、データセットに複数のモードが存在する場合に最小のモードを返します。

例えば、

C = [10, 30, "Hello", 30, 10, "Hello", 30, 10]
print("Mode of List C is % s" % (max(set(C), key=C.count)))

出力:

Mode of List C is 10

Python でコレクションパッケージの Counter クラスを使用してリストのモードを検索する

コレクションパッケージの Counter クラスは、特定のデータセットに存在する各要素の出現回数をカウントするために使用されます。

Counter クラスの .most_common() メソッドは、それぞれの一意の要素とその頻度を持つ 2 項目のタプルを含むリストを返します。

例えば、

from collections import Counter

A = [10, 10, 30, 10, 50, 30, 60]
Elements_with_frequency = Counter(A)
print(Elements_with_frequency.most_common())

出力:

[(10, 3), (30, 2), (50, 1), (60, 1)]

Counter(list_name).most_common(1)[0][0] 関数は、リストの必要なモードを返します。リストに複数のモードが存在する場合、最小のモードが返されます。

例:

from collections import Counter

A = [10, 10, 30, 10, 50, 30, 60]
print("Mode of List A is % s" % (Counter(A).most_common(1)[0][0]))

出力:

Mode of List A is 10

Python で statistics モジュールの mode() 関数を使用してリストのモードを検索する

Python 統計モジュールの mode() 関数は、データセットをパラメーターとして受け取り、そのモード値を返します。

例:

from statistics import mode

A = [10, 20, 20, 30, 30, 30]
print("Mode of List A is % s" % (mode(A)))
B = ["Yes", "Yes", "Yes", "No", "No"]
print("Mode of List B is % s" % (mode(B)))

出力:

Mode of List A is 30
Mode of List B is Yes

この関数は、データセットが空の場合、または複数のモードが存在する場合に、StatisticsError を発生させます。ただし、Python の新しいバージョンでは、シーケンスに複数のモードがある場合、最小の要素がモードと見なされます。

統計モジュールの multimode() 関数を使用して、Python のモードのリストを検索する

統計モジュールの multimode() 関数は、いくつかのデータセットをパラメーターとして受け取り、モードのリストを返します。この関数は、特定のデータセットに複数の最頻値が存在する場合に使用できます。

例:

from statistics import multimode

A = [10, 20, 20, 30, 30, 30, 20]
print("Mode of List A is % s" % (multimode(A)))
B = ["Yes", "Yes", "Yes", "No", "No", "No", "Maybe", "Maybe"]
print("Mode of List B is % s" % (multimode(B)))

出力:

Mode of List A is [20, 30]
Mode of List B is ['Yes', 'No']

関連記事 - Python List