【发布时间】:2016-02-08 17:00:56
【问题描述】:
我正在尝试计算大型数组的运行中位数、均值和标准差。我知道如何计算运行平均值如下:
def running_mean(x, N):
cumsum = np.cumsum(np.insert(x, 0, 0))
return (cumsum[N:] - cumsum[:-N]) / float(N)
这非常有效。但是我不太明白为什么(cumsum[N:] - cumsum[:-N]) / float(N) 可以给出平均值(我是从别人那里借来的)。
我尝试添加另一个返回语句来计算中位数,但它没有达到我想要的效果。
return (cumsum[N:] - cumsum[:-N]) / float(N), np.median(cumsum[N:] - cumsum[:-N])
有没有人给我一些提示来解决这个问题?非常感谢。
张华年
【问题讨论】:
-
您的目标是了解正在发生的事情,还是只想使用这些功能?在后一种情况下,您可以在
pandas中找到许多预定义的 - 请参阅pandas.pydata.org/pandas-docs/stable/… -
median是一个奇怪的统计数据。它只是中间值,或 2 个中间值的平均值。这需要对值进行排序,这与对它们求和完全不同。