通过使用numpy平均相邻值来减小数组大小

Ada*_*ile 5 python arrays numpy mean

在numpy中我有成千上万的val.我想通过平均相邻值来减小其大小.例如:

a = [2,3,4,8,9,10]
#average down to 2 values here
a = [3,9]
#it averaged 2,3,4 and 8,9,10 together
Run Code Online (Sandbox Code Playgroud)

所以,基本上,我在数组中有n个元素,我想告诉它平均下降到X个值,并且它的平均值如上所述.

有没有办法用numpy做到这一点(已经将它用于其他事情,所以我想坚持下去).

Sau*_*tro 6

正如评论中所提到的,你想要的可能是:

group = 3
a = a.reshape(-1, group).mean(axis=1)
Run Code Online (Sandbox Code Playgroud)


CT *_*Zhu 0

对我来说,这看起来像是一个简单的非重叠移动窗口平均值,怎么样:

In [3]:

import numpy as np
a = np.array([2,3,4,8,9,10])
window_sz = 3
a[:len(a)/window_sz*window_sz].reshape(-1,window_sz).mean(1) 
#you want to be sure your array can be reshaped properly, so the [:len(a)/window_sz*window_sz] part
Out[3]:
array([ 3.,  9.])
Run Code Online (Sandbox Code Playgroud)