首页 > 解决方案 > 实现两个二维数组之间的加权平均

问题描述

假设我想取两个二维数组之间的加权平均值,比如xy,我想给出y比 更高的重要性x。我知道这样numpy.average做,但我希望看到一个适用于我的这种情况的示例。

先感谢您。

标签: pythonpython-3.xnumpyaverage

解决方案


如果 x 和 y 具有相同的形状,您可以评估每对元素(每个数组一个)之间的加权平均值,然后计算它们的平均值。

import numpy as np

x = np.array([100,200,300])
y = np.array([1,2,3])

print(
  np.mean(
    np.average([x,y], weights=[1,100], axis=0)
  )
)

或者对于通用数组,您可以使用加权和的定义:

import numpy as np

x = np.array([100,200,300])
y = np.array([1,2,3])

x_w = 1
y_w = 100

print(
  (np.sum(x)*x_w + np.sum(y)*y_w) / (x.size*x_w + y.size*y_w)
)

推荐阅读