在 Python 中,mean
函数用于计算数据的平均值,但需要根据不同的库来使用。以下是常见的使用场景和示例:
1. 使用 statistics
库(适用于基础列表/可迭代对象)
import statistics
data = [1, 2, 3, 4, 5]
average = statistics.mean(data)
print(average) # 输出: 3
注意事项:
- 如果数据为空,会抛出
StatisticsError
。 - 数据必须为数值类型(整数或浮点数)。
2. 使用 NumPy 库(适用于数组/矩阵计算)
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
average = np.mean(arr)
print(average) # 输出: 3.0
# 计算多维数组沿指定轴的均值
matrix = np.array([[1, 2], [3, 4]])
row_avg = np.mean(matrix, axis=0) # 沿列计算(输出: [2.0, 3.0])
col_avg = np.mean(matrix, axis=1) # 沿行计算(输出: [1.5, 3.5])
参数说明:
axis
: 指定计算维度(0=列,1=行)。dtype
: 指定输出数据类型。- 忽略 NaN 值:使用
np.nanmean()
。
3. 使用 Pandas 库(适用于 DataFrame/Series)
import pandas as pd
# 计算 Series 的均值
series = pd.Series([1, 2, 3, 4, 5])
series_avg = series.mean()
print(series_avg) # 输出: 3.0
# 计算 DataFrame 每列的均值
df = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
df_avg = df.mean()
print(df_avg)
# 输出:
# A 1.5
# B 3.5
参数说明:
axis
: 指定计算方向(0=列,1=行)。skipna
: 是否忽略缺失值(默认True
)。
4. 自定义实现(无需库)
def custom_mean(data):
return sum(data) / len(data)
data = [1, 2, 3, 4, 5]
print(custom_mean(data)) # 输出: 3.0
注意:需处理空列表和类型错误。
常见问题
- 空数据报错:在使用
statistics.mean()
或自定义函数时,确保数据非空。 - 数据类型混合:确保数据均为数值类型(避免字符串混入)。
- NaN 处理:在 NumPy/Pandas 中可使用
nanmean()
或skipna=True
。
根据需求选择合适的库:小型数据用 statistics
,科学计算用 NumPy,数据分析用 Pandas。