numpy 加权平均值


average函数

numpy中的average()函数用于按指定的轴求数组的加权平均值。


加权平均值的数学定义

若有n个数x1,x2,……,xn的权分别是w1,w2,……,wn,则这n个数的加权平均值average(x)=(x1w1+x2w2+……xnwn)/(w1+w2+……+wn)。


语法


参数

参数描述
a要求平均值的数组。如果不是数组,则尝试转换。
axis整数,可选。 指定沿哪个轴求a的平均值:
axis=0:沿y轴
axis=1: 沿y轴
axis=None:默认,求所有元素的加权平均值。
weights数组,可选。
与a中的值相关联的权重数组。a中的每个值根据其关联的权重对平均值作出贡献。weights数组可以是一维的(在这种情况下,它的长度必须是沿着给定轴的a的大小),也可以是与a相同的形状。
如果weights=None,那么假设a中的所有数据的权值都等于1。
returned布尔值,可选。
默认为False。 如果为True, 则返回weights的平均值,否则仅返回a的平均值。

实例


import numpy as np

a = np.linspace(1,5,5)
print(a)
[1. 2. 3. 4. 5.]
b= np.average(a)
print(b)
3.0

linspace函数参考numpy linspace


import numpy as np

a = np.arange(6).reshape(3,2)
print(a)
b=np.average(a,axis=1)
print(b)
c = np.average(a,axis=1,weights=[1./4,3./4])
print(c)

结果:


[[0 1]
 [2 3]
 [4 5]]

[0.5 2.5 4.5]

[0.75 2.75 4.75]