【发布时间】:2016-05-26 12:16:31
【问题描述】:
假设我有一个如下所示的数组:
a = np.array([0, 20, 40, 30, 60, 35, 15, 18, 2])
我有一个索引数组,我想在它们之间进行平均:
averaging_indices = np.array([2, 4, 7, 8])
我要做的是根据 averaging_indices 数组对数组 a 的元素进行平均。为了清楚起见,我想取平均值:
np.mean(a[0:2]), np.mean(a[2:4]), np.mean(a[4:7]), np.mean(a[7,8]), np.mean(a[8:])
我想返回一个具有正确尺寸的数组,在这种情况下
result = [10, 35, 36.66, 18, 2]
谁能想到一个巧妙的方法来做到这一点?我能想象的唯一方法是循环,这是非常反 numpy 的。
【问题讨论】:
-
我认为您应该使用
np.mean(a[8:])而不是@Divakarsnp.mean(a[8:-1])还是要排除最后一个索引?您只是不想要一个循环还是在这里关注速度? -
对不起,我的意思不应该是 ... np.mean(a[7:8]), np.mean(a[8:]) 而不是@MSeifert 也提到的?
-
另外,
np.mean(a[4:7])变成了36.66。