scipy.stats.

mode#

scipy.stats.mode(a, axis=0, nan_policy='propagate', keepdims=False)[source]#

返回傳遞陣列中眾數(最常見)值的陣列。

如果有多個此類值,則僅返回一個。 也會返回眾數組的 bin 計數。

參數:
aarray_like

數值,要尋找眾數的 n 維陣列。

axisint 或 None,預設值:0

如果為整數,則為計算統計量的輸入軸。 輸入的每個軸切片(例如,行)的統計量將出現在輸出的對應元素中。 如果 None,則輸入將在計算統計量之前被展平。

nan_policy{‘propagate’, ‘omit’, ‘raise’}

定義如何處理輸入 NaN。

  • propagate:如果 NaN 出現在計算統計量的軸切片(例如,行)中,則輸出的對應條目將為 NaN。

  • omit:執行計算時將省略 NaN。 如果沿計算統計量的軸切片中剩餘的資料不足,則輸出的對應條目將為 NaN。

  • raise:如果存在 NaN,將引發 ValueError

keepdimsbool,預設值:False

如果將其設定為 True,則縮減的軸將保留在結果中,作為大小為 1 的維度。 使用此選項,結果將針對輸入陣列正確廣播。

返回:
modendarray

眾數值的陣列。

countndarray

每個眾數的計數陣列。

註解

眾數是使用 numpy.unique 計算的。 在 NumPy 1.21 及更高版本中,所有 NaN(即使是二進位表示形式不同的 NaN)都被視為等效,並計為相同值的單獨實例。

依照慣例,空陣列的眾數為 NaN,且關聯的計數為零。

從 SciPy 1.9 開始,np.matrix 輸入(不建議用於新程式碼)會在執行計算之前轉換為 np.ndarray。 在這種情況下,輸出將是純量或 np.ndarray 的適當形狀,而不是 2D np.matrix。 同樣地,雖然會忽略遮罩陣列的遮罩元素,但輸出將是純量或 np.ndarray,而不是具有 mask=False 的遮罩陣列。

範例

>>> import numpy as np
>>> a = np.array([[3, 0, 3, 7],
...               [3, 2, 6, 2],
...               [1, 7, 2, 8],
...               [3, 0, 6, 1],
...               [3, 2, 5, 5]])
>>> from scipy import stats
>>> stats.mode(a, keepdims=True)
ModeResult(mode=array([[3, 0, 6, 1]]), count=array([[4, 2, 2, 1]]))

若要取得整個陣列的眾數,請指定 axis=None

>>> stats.mode(a, axis=None, keepdims=True)
ModeResult(mode=[[3]], count=[[5]])
>>> stats.mode(a, axis=None, keepdims=False)
ModeResult(mode=3, count=5)