【问题标题】:Implement the weighted average between two 2D arrays实现两个二维数组之间的加权平均
【发布时间】:2020-05-26 15:17:39
【问题描述】:

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

提前谢谢你。

【问题讨论】:

    标签: python python-3.x numpy average


    【解决方案1】:

    如果 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)
    )
    

    【讨论】:

    • 非常感谢。对于我的问题,结果数组也需要是二维的,所以我删除了np.mean
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多