計算 NumPy 中陣列的眾數

Muhammad Maisam Abbas 2023年1月30日 2021年7月4日
  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