Numpy加权平均数

在数据分析中,均值、加权均值、标准差和变异系数是常用的统计指标。本文将通过两个实际案例,带你学习如何使用 NumPy 库快速计算这些指标。

案例一:成绩的均值与加权均值计算

在学生成绩分析中,普通均值和加权均值能从不同角度反映学生的整体水平。下面以小明和小刚的三门课程成绩为例,演示具体计算过程。

1. 数据准备与普通均值计算

首先,我们用 NumPy 数组存储两人的成绩,然后通过np.average()函数计算普通均值(即未加权均值)。

python 复制代码
import numpy as np 
# 存储小明和小刚的三门课程成绩 xiaoming = np.array([80,90,95]) 
xiaogang = np.array([95 ,90,80]) 
# 计算并打印普通均值 
print('没有加权的情况下小明的平均分是',np.average(xiaoming)) 
print('没有加权的情况下小刚的平均分是',np.average(xiaogang))

运行结果显示,两人的普通均值均为 88.33333333333333,仅从普通均值无法区分两人成绩的差异。

2. 加权均值计算

实际教学中,不同课程的重要性可能不同,此时需要计算加权均值。假设三门课程的权重分别为 0.2、0.3、0.5,通过np.average()weights参数传入权重数组即可计算。

python 复制代码
# 定义权重数组
quanzhong = np.array([0.2,0.3,0.5]) 
# 计算并打印加权均值 
print('加权情况下小明的平均分是',np.average(xiaoming, weights = quanzhong)) 
print('加权情况下小刚的平均分是',np.average(xiaogang, weights = quanzhong))

运行结果显示,小明的加权均值为 90.5,小刚的加权均值为 86.0。此时能清晰看出,由于权重较大的课程成绩不同,两人的整体水平出现了明显差异。

案例二:多维度数据的均值、标准差与变异系数计算

在实际业务中,常需要对多列数据进行统计分析。下面以一个 7 行 4 列的多维度数据为例,计算每一列的均值、标准差和变异系数。

1. 数据准备与均值计算

先用 NumPy 数组存储多维度数据,再通过np.mean()函数,指定axis=0(按列计算),得到每一列的均值。

python 复制代码
# 存储7年的4个维度统计数据 
stat_info = np.array([ [110.93, 16.46, 0.2376, 0.0573],
[-0.13, 31.01, 0.1188, 0.0836], 
[8.94, 26.67, 0.0565, 0.0676],
[17.24, 19.53, 0.1512, 0.0433],
[43.86, -10.14, 0.097, 0.0421], 
[-15.34, -13.04, 0.0902, 0.0732], 
[-20.82, -23.37, 0.0582, 0.1091] ]) 
# 计算每一列的均值并打印 
ave=np.mean(stat_info,axis=0) 
print(ave)

运行结果为[20.66857143 6.73142857 0.11564286 0.06802857],分别对应 4 个维度数据的 7 年均值。

2. 标准差计算

标准差能反映数据的离散程度,通过np.std()函数,同样指定axis=0,可计算每一列的标准差。

python 复制代码
# 计算每一列的标准差并打印
std=np.std(stat_info,axis=0) 
print(std)

运行结果为[4.18923479e+01 2.00965338e+01 5.84811046e-02 2.18930983e-02],离散程度的大小可通过数值直观判断。

3. 变异系数计算

变异系数是标准差与均值的比值,能消除量纲影响,用于比较不同维度数据的离散程度。只需将标准差除以均值即可得到。

python 复制代码
# 计算每一列的变异系数并打印
cv=np.std(stat_info,axis=0)/np.mean(stat_info,axis=0)
print(cv)

运行结果为[2.02686228 2.98547828 0.50570442 0.32182211],数值越大,说明该维度数据的离散程度相对越高。

相关推荐
JuicyActiveGilbert4 小时前
【Python进阶】第2篇:单元测试
开发语言·windows·python·单元测试
唐叔在学习4 小时前
200kb能作甚?mss表示我给你整个截图程序
后端·python
智能化咨询4 小时前
Python 小工具实战:图片水印批量添加工具——从原理到实现的全流程指南
python
用户3721574261354 小时前
如何使用 Python 自动调整 Excel 行高和列宽
python
用户8356290780514 小时前
用Python自动化转换PowerPoint幻灯片为图片
后端·python
程序员爱钓鱼4 小时前
Python编程实战 · 基础入门篇 | 推导式(列表推导式 / 字典推导式)
后端·python
小小测试开发4 小时前
Bokeh 库入门:用 Python 绘制交互式数据可视化图表
开发语言·python·信息可视化·bokeh
数据科学作家5 小时前
如何入门python机器学习?金融从业人员如何快速学习Python、机器学习?机器学习、数据科学如何进阶成为大神?
大数据·开发语言·人工智能·python·机器学习·数据分析·统计分析