计算给定 NumPy 数组的加权平均值

numpyserver side programmingprogramming

加权平均值是一种平均值,其中每个数组元素在计算数据元素的平均值之前将乘以权重因子。每个数据点的权重决定了其对整体平均值的贡献。

计算加权平均值

这用于计算投资组合价值中股票的平均价格。加权平均值的数学公式如下。

weighted_average = (w1 * x1 + w2 * x2 + ... + wn * xn) / (w1 + w2 + ... + wn)

其中,

  • x1, x2, …..,xn 为给定的数据点

  • w1, w2, ……, wn 分别为要乘以每个数据点的加权平均值

  • n 为元素总数

Numpy 数组的加权平均值

在 python 中,Numpy 库提供了 average() 函数来计算给定数组的加权平均值元素。

语法

以下是查找给定数组元素的加权平均值的语法 -

numpy.average(array, weights = weights)

其中,

  • Array 是输入数组

  • weights 是在计算平均值之前要与数组元素相乘的权重值。

示例

为了找到给定数组的加权平均值,我们必须将数组和权重作为输入参数传递。在这里,我们传递的是 2D 数组的元素和权重 –

import numpy as np
a = np.array([[34,23],[90,34]])
weights = np.array([[2,3],[5,7]])
print("输入数组:",a)
print("数组的维度:",np.ndim(a))
avg = np.average(a)
print("给定二维数组的平均值:",avg)
weg = np.average(a,weights = weights)
print("数组的加权平均值:",weg)

输出

输入数组:[[34 23]
[90 34]]
数组的维度:2
给定二维数组的平均值二维数组:45.25
数组的加权平均值:48.529411764705884

示例

在下面的例子中,我们尝试计算 1D 数组的加权平均值 –

import numpy as np
a = np.array([3,4,2,3,90,34])
weights = np.array([2,3,1,5,7,6])
print("输入数组:",a)
print("数组的维度:",np.ndim(a))
avg = np.average(a)
print("给定 1-d 数组的平均值:",avg)
weg = np.average(a,weights = weights)
print("数组的加权平均值:",weg)

输出

输入数组:[ 3 4 2 3 90 34]
数组的维度:1
给定 1-d 数组的平均值数组:22.666666666666668
数组的加权平均值:36.208333333333336

示例

在此示例中,我们使用 average() 函数计算三维数组的加权平均值 –

import numpy as np
a = np.array([[[3,4],[2,3]],[[90,34],[78,23]]])
weights = np.array([[[3,4],[2,3]],[[90,34],[78,23]]])
print("输入数组:",a)
print("数组的维度:",np.ndim(a))
avg = np.average(a)
print("给定三维数组的平均值:",avg)
weg = np.average(a,weights = weights)
print("数组的加权平均值:",weg)

输出

输入数组:[[[ 3 4]
[ 2 3]]
[[90 34]
[78 23]]]
数组的维度:3
给定三维数组的平均值:29.625
数组的加权平均值:67.11814345991561

相关文章