Я пытаюсь вычислить текущее среднее, среднее и std большого массива. Я знаю, как рассчитать текущее среднее значение ниже:Запуск или скользящее среднее, среднее и стандартное отклонение
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])
Кто-нибудь предлагает мне какой-то намек на решение этой проблемы? Большое спасибо.
Huanian Чжан
Ваша цель - понять, что происходит, или вы просто хотите использовать эти функции? В последнем случае вы можете найти многие из них, предопределенные в 'pandas' - см. Http://pandas.pydata.org/pandas-docs/stable/comput.html#moving-rolling-statistics-moments – cel
' median' - это нечетная статистика. Это просто среднее значение или среднее значение для двух средних значений. Это требует сортировки значений, что-то совершенно отличное от их суммирования. – hpaulj