什么是在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 = mean(1)
- 1.5 = mean(1,2) (即输入列表的前两个值的均值)
- 2.3 = mean(1,2,4) (即输入列表的前三个值的均值)
- 3.25 = mean(1,2,4,6) (即输入列表的前四个值的均值) 等等。
而中位数的计算方法如下:
- 1 = median(1)
- 1.5 = median(1,2) (即输入列表的前两个值的中位数)
- 2.0 = median(1,2,4) (即输入列表的前三个值的中位数)
- 3.0 = median(1,2,4,6) (即输入列表的前四个值的中位数) 等等。
我尝试使用以下循环来实现,但它似乎非常低效。
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]))
import numpy
占用了大部分运行时间(而且你不需要它)。 - msw