在 Python 中求平均數、中位數和眾數:資料分析綜合指南
數據分析是理解和解釋數據集的重要組成部分。 數據分析的一個基本面向是計算數據的平均值、中位數和眾數。 這三個指標代表了中心趨勢,有助於識別資料中的趨勢和模式。 在本文中,我們將探討平均數、中位數和眾數的概念,以及如何使用 Python 計算它們。 我們還將討論解決類似問題所涉及的各種函式庫和函數。
**平均值** 是資料集的平均值,透過將值的總和除以資料集中的值的數量來計算。 **中位數**是資料集依升序或降序排序時的中間值。 如果資料集有奇數個值,則中位數是剛好位於中間的值,而如果資料集有偶數個值,則中位數是中間兩個值的平均值。 **眾數**是指資料集中出現最頻繁的值。
為了計算這些度量,我們將編寫一個 Python 程序,該程序將數字列表作為輸入並傳回平均值、中位數和眾數。 讓我們按照逐步方法來實作該解決方案。
# Step 1: Define a function to calculate the mean def calculate_mean(numbers): return sum(numbers) / len(numbers) # Step 2: Define a function to calculate the median def calculate_median(numbers): sorted_numbers = sorted(numbers) length = len(numbers) mid_index = length // 2 if length % 2 == 0: median = (sorted_numbers[mid_index - 1] + sorted_numbers[mid_index]) / 2 else: median = sorted_numbers[mid_index] return median # Step 3: Define a function to calculate the mode def calculate_mode(numbers): from collections import Counter count = Counter(numbers) mode = count.most_common(1)[0][0] return mode # Step 4: Implement the main function def main(): numbers = [int(x) for x in input("Enter numbers separated by spaces: ").split()] mean = calculate_mean(numbers) median = calculate_median(numbers) mode = calculate_mode(numbers) print("Mean:", mean) print("Median:", median) print("Mode:", mode) if __name__ == "__main__": main()
上面的程式碼由四個步驟組成。 首先,我們定義一個函數來計算數字列表的平均值。 在第二步驟中,我們定義另一個函數來計算中位數。 此函數對輸入清單進行排序,並根據清單的長度找到中間值。 在第三步驟中,我們建立一個函數來使用集合模組中的 Counter 類別來計算眾數。 最後一步包括定義主函數,該函數接受使用者輸入,呼叫先前定義的函數,並輸出輸入資料的平均值、中位數和眾數。
用於統計和數據分析的 Python 庫
Python 提供 多個庫 有助於統計分析和資料操作。 一些流行的庫包括:
- 脾氣暴躁的 – 一個強大的數值計算、陣列操作和線性代數庫。
- 大熊貓 – 一個靈活的函式庫,使用 DataFrame 結構提供資料操作和分析功能。
- 科學 – 一個處理科學計算的函式庫,包括最佳化、積分、內插等等。
使用 Numpy 和 Pandas 計算平均值、中位數和眾數
除了基本的Python實作之外,我們還可以使用Numpy和Pandas函式庫來高效地計算平均值、中位數和眾數。
以下是如何使用 Numpy 和 Pandas 計算資料集的這些中心趨勢的範例:
import numpy as np import pandas as pd data = [4, 2, 7, 3, 9, 1, 6, 5, 8] # Using Numpy mean_numpy = np.mean(data) median_numpy = np.median(data) # Using Pandas data_series = pd.Series(data) mode_pandas = data_series.mode().tolist() print("Mean (Numpy):", mean_numpy) print("Median (Numpy):", median_numpy) print("Mode (Pandas):", mode_pandas)
在上面的範例中,我們使用 Numpy 函數「mean()」和「median()」分別計算平均值和中位數。 對於模式,我們將資料轉換為 Pandas Series 並使用“mode()”函數,該函數會傳回模式列表。
本文全面介紹了平均數、中位數和眾數的概念,以及如何使用基本 Python 和流行的 Python 函式庫來計算它們。 使用這些方法,數據分析師可以有效地分析和解釋數據集,以得出有意義的結論並識別數據趨勢。