目次
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 的基本功能,因此具備良好的靈活性。此外,當資料量不大時,是非常合適的選擇。Ad
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 來安裝。
Ad
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() 等簡潔方法,但掌握此方式對於程式邏輯的理解非常有幫助。Ad
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}")
Ad
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 的項目,然後再進行平均計算。這種方式在需要排除異常值或進行條件分析時非常實用。



