NumPy で配列のモードを計算する

Muhammad Maisam Abbas 2023年1月30日
  1. scipy.stats.mode() 関数を使用して NumPy 配列の最頻値を計算する
  2. numpy.unique() 関数を使用して NumPy 配列のモードを計算する
NumPy で配列のモードを計算する

このチュートリアルでは、Python で NumPy 配列のモードを計算する方法を紹介します。

scipy.stats.mode() 関数を使用して NumPy 配列の最頻値を計算する

モードは、コレクション内で最も繰り返される値です。scipy.stats ライブラリには、統計に関連する多くの関数が含まれています。scipy.stats ライブラリ内の mode() 関数は、Python で配列のモードを検索します。配列を入力引数として受け取り、入力配列内で最も一般的な値の配列を返します。この方法を機能させるには、scipy パッケージをインストールする必要があります。インストールするコマンドを以下に示します。

pip install scipy

次のコード例は、scipy.stats.mode() 関数を使用して NumPy 配列内のモードを計算する方法を示しています。

import numpy as np
from scipy import stats

array = np.array([1, 2, 3, 4, 4, 5])
mode = stats.mode(array)
print(mode[0])

出力:

[4]

最初に、np.array() 関数を使用して配列 array を作成しました。次に、scipy.stats.mode() 関数を使用してモードを計算し、その結果を mode 配列内に保存しました。最後に、mode 配列の最初の要素を出力することにより、最も繰り返される値を表示しました。

numpy.unique() 関数を使用して NumPy 配列のモードを計算する

NumPy パッケージを使用してモードを検索する場合は、numpy.unique() 関数を使用できます。numpy.unique() 関数は、入力引数として配列を受け取り、入力配列内のすべての一意の要素の配列を返します。return_count パラメーターを True に指定して、各一意の要素が入力配列内で繰り返される回数を取得することもできます。

import numpy as np

array = np.array([1, 2, 3, 4, 4, 5])
vals, counts = np.unique(array, return_counts=True)
index = np.argmax(counts)
print(vals[index])

出力:

4

上記のコードでは、Python の np.unique() 関数と np.argmax() 関数を使用して、NumPy 配列 array のモードを計算しました。最初に、np.array() 関数を使用して配列 array を作成しました。次に、np.unique() 関数を使用して、一意の値を vals 配列内に格納し、各値が counts 配列内で繰り返される回数。次に、np.argmax() 関数を使用して counts 配列内の最大値を計算し、その値を index 変数内に格納しました。最後に、vals 配列の index インデックスに値を出力してモードを表示しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn