Я профилирую некоторые числовые измерения времени, которые группируются очень близко. Я хотел бы получить среднее, стандартное отклонение и т. Д. Некоторые входы большие, поэтому я думал, что могу избежать создания списков миллионов чисел, а вместо использовать коллекции Python.Counter-объекты как компактное представление.Вычислить среднее значение для значений в коллекциях python.Counter
Пример: один из моих маленьких входов дает collection.Counter
как [(48, 4082), (49, 1146)]
, что означает 4,082 вхождения значения 48 и 1146 вхождений значения 49. Для этого набора данных я вручную рассчитать среднее значение, чтобы быть что-то вроде 48.2192042846.
Конечно, если бы у меня был простой список из 4,082 + 1,146 = 5,228 целых чисел, я бы просто передал его numpy.mean().
Мой вопрос: как я могу рассчитать описательную статистику из значений в объекте collections.Counter
так же, как если бы у меня был список чисел? Мне нужно создать полный список или есть ярлык?
(не успел написать ответ сам, но 'np.average' имеет параметр весов, и вы можете сделать stddev вручную, см. [Здесь] (http://stackoverflow.com/questions/2413522/weighted -стандартное отклонение-в-numpy) - если кто-то хочет написать ответ, используя этот подход, я удалю это) – DSM