SciPy scipy.stats.mode 関数
-
scipy.stats.mode()の構文: -
コード例:
scipy.stats.mode()``軸が設定されていないでモードを検索するメソッド -
コード例:
scipy.stats.mode()関数でaxis=Noneを設定する -
コード例:
scipy.stats.mode()関数でaxis=1を設定する
Python Scipy scipy.stats.mode() 関数は、指定された軸に沿った配列要素のモードを計算します。モードは、データセットで最も頻繁に観測される値です。データセット内で複数のアイテムの頻度が最も高い場合、モードとして最小の値を取得します。
scipy.stats.mode() の構文:
scipy.stats.mode(a, axis=0)
パラメーター
a |
これは、モードが計算される n 次元配列です。 |
axis |
これはオプションのパラメータです。これは、モードが計算される軸です。デフォルトでは、axis=0 |
戻り値
2つの値を返します。
- 設定された軸に応じた n 次元配列要素のモード値の配列。
- n 次元配列要素に存在する各モード値のカウントの配列。
コード例:scipy.stats.mode()``軸が設定されていないでモードを検索するメソッド
import numpy as np
import scipy
from scipy import stats
arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])
result = scipy.stats.mode(arr)
print("The mode of given data is:\n", result[0])
print("The frequency of mode items is:\n", result[1])
出力:
The mode of given data is:
[[1 5 0 0]]
The frequency of mode items is:
[[1 2 1 1]]
ここでは、多次元配列 arr が 2 次元で作成されています。配列は引数として stats.mode 関数に渡され、変数 result に格納された出力が生成されます。
この状態では軸パラメータが定義されていないため、モード操作はデフォルトで横軸で行われます。
最初の列の要素でわかるように、すべての要素のカウントが等しく、1 が最小値であるため、カウント 1 の最初の列 1 のモードが得られます。2 番目の列要素では、5 が 2 回発生するため、カウント 2 のモードであり、残りの列要素でも同様です。
出力には 2つの値が表示されます。1つ目はモード値要素を持つ配列を示す ModeResult であり、2つ目は count は特定の多次元データのそれぞれのモード値の数を示す配列です。
コード例:scipy.stats.mode() 関数で axis=None を設定する
scipy.stats.mode() 関数で axis=None を設定すると、関数は配列全体から単一のモードを計算します。
import numpy as np
import scipy
from scipy import stats
arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])
result = scipy.stats.mode(arr, axis=None)
print("The mode of given data is :", result[0][0])
print("The frequency of mode is :", result[1][0])
出力:
The mode of given data is : 2
The frequency of mode is : 3
ここでは、軸が None に設定されている場合は常に、モード操作が配列要素全体で行われ、最も頻繁に観測されるデータが考慮されるため、出力には単一の配列要素 2 が表示されます。
コード例:scipy.stats.mode() 関数で axis=1 を設定する
scipy.stats.mode() 関数で axis=1 を設定すると、関数は配列の各行のモードを計算します。
import numpy as np
import scipy
from scipy import stats
arr = np.array([[2, 5, 6, 8], [3, 7, 3, 0], [1, 1, 4, 4], [9, 5, 0, 5], [6, 4, 2, 2]])
result = scipy.stats.mode(arr, axis=1)
print("The mode of given data is:\n", result[0])
print("The frequency of mode items is:\n", result[1])
出力:
The mode of given data is:
[[2]
[3]
[1]
[5]
[2]]
The frequency of mode items is:
[[1]
[2]
[2]
[2]
[2]]
ここで、軸は 1 に設定されています。これは、モード操作が垂直軸で行われることを意味します。したがって、最初の行の要素では、要素が繰り返されておらず、最小の 2 がモードであることがわかります。要素の 2 行目では、3 が最も繰り返されているため、他の要素と同様のモードになっています。