python - 如何在 np.average() 时简单地传递权重
问题描述
我对将权重传递给 np.average() 函数感到困惑。下面的例子:
import numpy as np
weights = [0.35, 0.05, 0.6]
abc = list()
a = [[ 0.5, 1],
[ 5, 7],
[ 3, 8]]
b = [[ 10, 1],
[ 0.5, 1],
[ 0.7, 0.2]]
c = [[ 10, 12],
[ 0.5, 13],
[ 5, 0.7]]
abc.append(a)
abc.append(b)
abc.append(c)
print(np.average(np.array(abc), weights=[weights], axis=0))
OUT:
TypeError: 1D weights expected when shapes of a and weights differ.
我知道形状不同,但是如何简单地添加权重列表而不做
np.average(np.array(abc), weights=[weights[0], weights[1], weights[2]], ..., axis=0)
因为我正在执行一个循环,其中权重因大小而异,最大为 30。
输出:加权数组,如下所示:
OUT:
[[6.675, 7.6],
[ 2.075, 10.3],
[ 4.085, 3.23]]
*average(a * weights[0] + b * weights[1] + c * weights[2])*
欢迎任何其他解决方案。
解决方案
不确定第一个元素如何是 4.675?
weights = [0.35, 0.05, 0.6]
a = [[ 0.5, 1],
[ 5, 7],
[ 3, 8]]
b = [[ 10, 1],
[ 0.5, 1],
[ 0.7, 0.2]]
c = [[ 10, 12],
[ 0.5, 13],
[ 5, 0.7]]
abc=[a, b, c]
print(np.average(np.array(abc), weights=weights,axis=0))
推荐阅读
- javascript - 如何在不循环整个数组的情况下找到与条件匹配的前 n 个数组项
- oracle-sqldeveloper - 无法通过 Oracle Cloud Web 控制台访问 apex 或 sql-developer 404
- c++ - 是什么导致全屏模式下“D3D11CreateDeviceAndSwapChain”出现访问冲突?
- java - 需要将 Java 字符串拆分为两个数组
- powershell - 通过 cmd 运行 powershell 命令
- javafx - Java FX 应用程序中未捕获的异常处理程序将 RuntimeExceptions 捕获为 NullPointerExceptions 的问题
- javascript - promise.all 在带有 firebase 的 typescript/javascript 中不能按预期工作?
- qt - 如何在 QT 不关闭端口的情况下停止从 COM 端口读取数据?
- html - 如何仅对 Index.html 进行密码保护?
- python - 如何将jpg图像中的形状转换为坐标。请解释一下。Python