我想计算一维数组中元素的元素均值。
>>> a = np.array([1, 3, 5, 7])
>>> b = element_wise_mean(a)
>>> b
array([2., 4., 6.])
除了简单的自定义函数之外,还有什么东西可以做到吗?
答案 0 :(得分:4)
使用以下代码:
>>> (a[:-1]+a[1:])/2
array([ 2., 4., 6.])
采取以下步骤:
>>> a[:-1]
array([1, 3, 5])
>>> a[1:]
array([3, 5, 7])
>>> a[:-1]+a[1:]
array([ 4, 8, 12])
>>> (a[:-1]+a[1:])/2
array([ 2., 4., 6.])
更通用的方法是在N
元素上设置移动平均滤波器(代码取自lapis并添加Paul Panzer)。在你的情况下,它将平均超过两个元素:
>>> N=2
>>> np.convolve(a, np.ones((N,))/N, mode='valid')
array([ 2., 4., 6.])
>>> N=3
>>> np.convolve(a, np.ones((N,))/N, mode='valid')
array([ 3., 5.])