Взвешенное стандартное отклонение в NumPy

numpy.average() имеет опцию весов, но numpy.std() не делает. У кого-либо есть предложения для обходного решения?

64
задан Acumenus 12 December 2018 в 17:35
поделиться

2 ответа

Как насчет следующего короткого «ручного расчета»?

def weighted_avg_and_std(values, weights):
    """
    Return the weighted average and standard deviation.

    values, weights -- Numpy ndarrays with the same shape.
    """
    average = numpy.average(values, weights=weights)
    # Fast and numerically precise:
    variance = numpy.average((values-average)**2, weights=weights)
    return (average, math.sqrt(variance))
111
ответ дан 24 November 2019 в 15:45
поделиться

Похоже, что такой функции в numpy / scipy пока нет, но есть билет , предлагающий эту дополнительную функциональность. Там вы найдете Statistics.py , который реализует взвешенные стандартные отклонения.

6
ответ дан 24 November 2019 в 15:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: