我有这个矩阵:
[[[ 0.49757494 0.50242506]
[ 0.50340754 0.49659246]
[ 0.50785456 0.49214544]
...,
[ 0.50817149 0.49182851]
[ 0.50658656 0.49341344]
[ 0.49419885 0.50580115]]
[[ 0.117 0.883 ]
[ 0.604 0.396 ]
[ 1. 0. ]
...,
[ 0.98559675 0.01440325]
[ 0.948 0.052 ]
[ 0.012 0.988 ]]
[[ 0.21099179 0.78900821]
[ 0.75212493 0.24787507]
[ 0.96653919 0.03346081]
...,
[ 0.97485074 0.02514926]
[ 0.95051503 0.04948497]
[ 0.05409603 0.94590397]]]
如果权重是w1,w2,w3,我如何计算每个矩阵的第一列和第二列的平均值(3乘2)?所以我可以这样:
[[[(X1 Y1]
...,
[X2 Y2]
[[X3 Y3]
...,
提前致谢。
编辑:输入形状是(3,37375,2),我想要而不是(3,2),a(1,2)。我想得到每列的均值,例如:
(0.497*w1 + 0.503*w2 + 0.507*w3)/ (w1 + w2 + w3) <--- First column
答案 0 :(得分:2)
假设您的输入形状为(3,n,2)
,并且您希望形状为(n,3,2)
,则首先要做
in=in.reshape((-1,3,2))
如果您有加权向量w
w = np.random.rand(3)
然后你可以使用np.average
在第一个轴上进行加权平均(得出(n,2)
out1 = np.average(in, weights = w, axis = 1)
或者你可以做加权和
out1 = np.sum(t*w[None,:, None], axis = 1) / np.sum(w)