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],数值越大,说明该维度数据的离散程度相对越高。

相关推荐
程序员三藏28 分钟前
Selenium无法定位元素的几种解决方案
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
前端小趴菜~时倾29 分钟前
自我提升-python爬虫学习:day04
爬虫·python·学习
小罗和阿泽30 分钟前
接口测试系列 接口自动化测试 pytest框架(三)
开发语言·python·pytest
猿界零零七8 小时前
pip install mxnet 报错解决方案
python·pip·mxnet
不只会拍照的程序猿10 小时前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
Jay_Franklin10 小时前
Quarto与Python集成使用
开发语言·python·markdown
Oueii11 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
2401_8318249611 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf12 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
@我漫长的孤独流浪12 小时前
Python编程核心知识点速览
开发语言·数据库·python