我有三个六维数组(运行在python3.4上)的形式为
Weights
MyValue
WeightedValue = Weight * MyValue
我想确定MyValue
通过Weights
'轴-j
(可能范围从0到4)在其他轴上的加权平均值,但5
轴是常量。在
(所以当j=2
时,我们是在0,1,3,
和{
然后我打算取这个平均值乘以Weights
,然后从WeightedValue
中减去乘积
我打算这么做是
^{pr2}$fn()
是MyValue
的平均值,定义如下:
我的问题如下:
平均值是一个2D数组,我需要fn()
来生成一个6D数组,也就是说,在其他4维上广播2D结果
最后,我可以创建一系列循环来迭代轴j
和轴5
import numpy as np
result = np.zeros((dim0,dim1,dim2,dim3,dim4,dim5))
for var1 in range(dim1):
for var5 in range(dim5):
result[:,dim1,:,:,:,dim5] = AverageValue[dim1,dim5]
但我希望有一个更直接和更普遍的方法
代替
fn
,您可以使用:很明显,关键是传递
keepdims=True
,它在求和轴的结果中保持单粒子维数,并使结果适合进一步广播。在相关问题 更多 >
编程相关推荐