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}")
程式碼說明
這段程式碼使用 NumPy
的 mean()
函數來計算平均值。與 statistics
模組相比,NumPy
在處理大型數據時的效率更高,特別是在數值分析或機器學習等需要大量資料運算的情境中。
不過,使用 NumPy
需要先安裝套件,可以透過 pip install numpy
來安裝。

4. 使用 Pandas 計算平均值(適合表格資料)
若要處理像是 Excel 或 CSV 這類表格形式的資料,Pandas
是最佳選擇之一。Pandas 提供的 mean()
函數可用於 Series
或 DataFrame
對象,讓平均計算變得簡單又快速。
使用 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)進行平均計算
在實際的資料分析中,常常會遇到包含 None
或 NaN
(非數值)的情況。這些缺失值若不排除,會導致平均計算失敗或錯誤,因此需要事先處理。
使用 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 的項目,然後再進行平均計算。這種方式在需要排除異常值或進行條件分析時非常實用。
