微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 np.average() 时简单地传递权重

如何解决如何在 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,[ 0.5,[ 0.7,0.2]]

c = [[ 10,12],13],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)

因为我正在执行一个循环,其中权重因大小而异

输出:像这样的加权数组:

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,[ 0.5,[ 0.7,0.2]]

c = [[ 10,12],13],0.7]]

abc=[a,b,c]

print(np.average(np.array(abc),weights=weights,axis=0))
,

您的 bluetooth.writeBytes(utf8.encode("CÔNG TY CỔ PHẦN ĐẦU TƯ XÂY DỰNG DƯƠNG KINH")); 数组的形状为 (1,3,2)。因此,要么像@BingWang 建议的那样更改 abc 或使用 axis=1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。