Nidy元素意味着1D阵列

时间:2018-04-04 22:48:19

标签: python arrays numpy

我想计算一维数组中元素的元素均值。

>>> a = np.array([1, 3, 5, 7])
>>> b = element_wise_mean(a)
>>> b
array([2., 4., 6.])

除了简单的自定义函数之外,还有什么东西可以做到吗?

1 个答案:

答案 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.])