使用 Python 計算平均的 7 種方法|從基礎到進階全面解析

1. 使用 Python 計算平均值的基本方法

在 Python 中計算資料的平均值,最基本的方法是結合使用 sum() 函數與 len() 函數來進行計算。由於這是利用 Python 內建的標準函數,不需要額外安裝任何套件,因此對於初學者來說也非常容易理解。

基本的平均計算方法

平均值是透過將所有資料相加後除以資料的數量來取得的。例如,計算儲存在清單中的數值的平均,可以使用以下程式碼:

# サンプルデータ
numbers = [10, 20, 30, 40, 50]

# 合計を計算
total = sum(numbers)

# 平均値を計算
average = total / len(numbers)

print(f"データ: {numbers}")
print(f"平均値: {average}")

程式碼說明

這段程式碼首先使用 sum() 來加總清單 numbers 中的所有數值,接著使用 len() 來取得清單中的元素個數。最後,將總和除以資料數即可計算出平均值。len() 函數會回傳清單的長度,因此無論資料有多少筆,都能正確算出平均值。

由於這種方法僅使用 Python 的基本功能,因此具備良好的靈活性。此外,當資料量不大時,是非常合適的選擇。

2. 使用 statistics 模組計算平均值

Python 提供了標準函式庫 statistics 模組,讓計算平均值變得更加簡單方便。statistics.mean() 函數可以接收清單或元組等可迭代物件,並計算其平均值。

使用 statistics.mean() 進行平均計算的方法

import statistics

# サンプルデータ
numbers = [10, 20, 30, 40, 50]

# 平均値を計算
average = statistics.mean(numbers)

print(f"データ: {numbers}")
print(f"平均値: {average}")

程式碼說明

這段程式碼是透過 statistics 模組中的 mean() 函數來計算平均值。這個函數不受資料型態或格式限制,能夠對傳入的數值集合進行平均計算。由於這是 Python 標準函式庫的一部分,因此不需額外安裝,可以直接使用,非常方便。

statistics.mean() 函數內部其實也是使用 sum()len() 來進行計算,因此計算結果與前面的方法相同,但程式碼更簡潔,有助於減少錯誤。

年収訴求

3. 使用 NumPy 計算平均值(適合大型資料)

當處理大量數據時,NumPy 是一個非常強大的工具。NumPy 是一個支援大量數值計算的 Python 套件,其提供的 mean() 函數可以快速計算平均值,效率比標準函式更高。

使用 numpy.mean() 計算平均值

import numpy as np

# サンプルデータ
numbers = [10, 20, 30, 40, 50]

# 平均値を計算
average = np.mean(numbers)

print(f"データ: {numbers}")
print(f"平均値: {average}")

程式碼說明

這段程式碼使用 NumPymean() 函數來計算平均值。與 statistics 模組相比,NumPy 在處理大型數據時的效率更高,特別是在數值分析或機器學習等需要大量資料運算的情境中。

不過,使用 NumPy 需要先安裝套件,可以透過 pip install numpy 來安裝。

4. 使用 Pandas 計算平均值(適合表格資料)

若要處理像是 Excel 或 CSV 這類表格形式的資料,Pandas 是最佳選擇之一。Pandas 提供的 mean() 函數可用於 SeriesDataFrame 對象,讓平均計算變得簡單又快速。

使用 Pandas 的 Series 進行平均計算

import pandas as pd

# サンプルデータ(PandasのSeriesを使用)
numbers = pd.Series([10, 20, 30, 40, 50])

# 平均値を計算
average = numbers.mean()

print(f"データ:\n{numbers}")
print(f"平均値: {average}")

程式碼說明

這段程式碼使用 Pandas 的 Series 結構儲存數據,並透過 mean() 方法直接計算平均值。這種方式非常適合處理從 CSV 或 Excel 匯入的資料,或是需要資料清洗與前處理的情境。

NumPy 一樣,Pandas 套件也需要事先安裝,安裝方法為 pip install pandas

侍エンジニア塾

5. 使用 for 迴圈自行計算平均值

除了使用內建函式之外,也可以透過 for 迴圈手動計算平均值。這種方式有助於理解平均值的基本概念與計算流程。

使用 for 迴圈計算平均值的範例

# サンプルデータ
numbers = [10, 20, 30, 40, 50]

# 合計とカウントを初期化
total = 0
count = 0

# for文で繰り返し処理
for num in numbers:
    total += num
    count += 1

# 平均値を計算
average = total / count

print(f"データ: {numbers}")
print(f"平均値: {average}")

程式碼說明

此程式碼使用 for 迴圈逐一取得清單中的數值並加總,同時紀錄數據的筆數,最後計算平均值。這種方法可以靈活處理特定條件下的資料,也方便加入過濾條件。

雖然實務上會更常使用 sum()mean() 等簡潔方法,但掌握此方式對於程式邏輯的理解非常有幫助。

6. 排除缺失值(None, NaN)進行平均計算

在實際的資料分析中,常常會遇到包含 NoneNaN(非數值)的情況。這些缺失值若不排除,會導致平均計算失敗或錯誤,因此需要事先處理。

使用 list comprehension 排除 None

numbers = [10, 20, None, 40, 50]

# Noneを除外
cleaned = [num for num in numbers if num is not None]

# 平均値を計算
average = sum(cleaned) / len(cleaned)

print(f"元のデータ: {numbers}")
print(f"有効なデータ: {cleaned}")
print(f"平均値: {average}")

使用 pandas 排除 NaN

import pandas as pd
import numpy as np

# サンプルデータ(NaN を含む)
numbers = pd.Series([10, 20, np.nan, 40, 50])

# NaN を除外して平均値を計算
average = numbers.mean()

print(f"データ:\n{numbers}")
print(f"平均値: {average}")

7. 条件付きで平均を計算(フィルター付き平均)

特定の条件を満たすデータだけを抽出して平均を計算したい場合、if 文を組み合わせることで実現できます。

例:30以上の値だけを平均

numbers = [10, 20, 30, 40, 50]

# 条件を満たすデータを抽出(30以上)
filtered = [num for num in numbers if num >= 30]

# 平均値を計算
average = sum(filtered) / len(filtered)

print(f"元のデータ: {numbers}")
print(f"30以上のデータ: {filtered}")
print(f"平均値: {average}")

程式碼說明

上述範例中,我們使用 list comprehension 結合 if 條件,篩選出數值大於或等於 30 的項目,然後再進行平均計算。這種方式在需要排除異常值或進行條件分析時非常實用。