有效计算平均值和中位数

hoof_hearted

在Python列表中顺序查找行的平均值和中位数的最有效方法是什么?

例如,我的列表:

input_list = [1,2,4,6,7,8]

我想产生一个包含以下内容的输出列表:

output_list_mean = [1,1.5,2.3,3.25,4,4.7]
output_list_median = [1,1.5,2.0,3.0,4.0,5.0]

平均值计算如下:

  • 1 =平均值(1)
  • 1.5 =平均值(1,2)(即input_list中前两个值的平均值)
  • 2.3 =平均值(1,2,4)(即input_list中前三个值的平均值)
  • 3.25 =平均值(1,2,4,6)(即input_list中前4个值的平均值)等。

中位数计算如下:

  • 1 =中位数(1)
  • 1.5 =中位数(1,2)(即input_list中前两个值的中位数)
  • 2.0 =中位数(1,2,4)(即input_list中前3个值的中位数)
  • 3.0 =中位数(1,2,4,6)(即input_list中前4个值的中位数)等。

我尝试使用以下循环来实现它,但是效率似乎很低。

import numpy

input_list = [1,2,4,6,7,8]

for item in range(1,len(input_list)+1):
    print(numpy.mean(input_list[:item]))
    print(numpy.median(input_list[:item]))
海梅

您自己做的任何事情,尤其是使用中位数,都将需要很多工作,或者效率很低,但是Pandas内置了您要执行的函数的高效实现,扩展的平均值为O(n),使用跳过列表,扩展中位数为O(n * log(n)):

import pandas as pd
import numpy as np

input_list = [1, 2, 4, 6, 7, 8]

>>> pd.expanding_mean(np.array(input_list))
array([ 1.     ,  1.5    ,  2.33333,  3.25   ,  4.     ,  4.66667])

>>> pd.expanding_median(np.array(input_list))
array([ 1. ,  1.5,  2. ,  3. ,  4. ,  5. ])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R从本地文件计算平均值和中位数

平均值和中位数与摘要

如何(有效)计算向量的移动平均值?

根据标准计算平均值或中位数 - Excel

R:计算新列(平均值/中位数)

如何快速有效地计算平均值(移动平均值)?

计算月度数据的平均值和中位数,并在htmltable R中进行转换

计算每列频率表的平均值和中位数(每组的长度等级)

在 Shiny 中按日期范围计算平均值和中位数

r箱线图中的平均值和中位数

Fillna Pandas NaN的平均值和中位数

读取带有浮点数的文件,计算C中的大小,最大值,最小值,平均值,中位数和标准偏差

数据框平均值计算->与中位数相差> 20%的值应从平均值计算中排除

如何计算数量订单的最大值、最小值、平均值和中位数

在熊猫中有效计算具有回溯期的滚动平均值

计算多个数的几何平均值的有效方法

有效计算三个无符号整数的平均值(无溢出)

如何在python中有效计算移动平均值

这是计算移动平均值的有效方法吗?

有效地计算DAX中DISTINCTCOUNT的平均值?

计算Python中每个元素对之间函数平均值的最有效方法?

如何使用 Pandas 有效地计算前后行索引之间的平均值

Java,使用 Math.random 时计算中位数和平均值

分组和总结以找到基于组的平均值和中位数

如何从字典中找到键,然后取平均值,中位数和范围

计数总计,总空值,平均值和中位数

Sql Server 2012中一个查询的平均值和中位数

在两个ggplot直方图上显示平均值和中位数

查找跨列位平均值的有效方法