首页 > 解决方案 > 从 Python 中的值列表计算累积分布函数

问题描述

我想为这个列表中的每个值计算 Python 中的累积分布函数;

y = 1000, 1012, 1014, 1015, 1016, 1017, 1018, 1019...

以下功能;

F = (yi + 前 y 值) / y 值之和

示例:F 代表 1014

 F = (1014 + 1012 + 1000) / 8111 = 0.3730736

我想知道如何在 Python 中将此函数应用于大量 y 值。

谢谢!

标签: pythoncumulative-sum

解决方案


尝试这个:

import numpy as np

y =  [1000, 1012, 1014, 1015, 1016, 1017, 1018, 1019]

np.cumsum(y)/np.sum(y)

结果是:

array([0.12328936, 0.24805819, 0.3730736 , 0.4982123 , 0.62347429,
       0.74885957, 0.87436814, 1.        ])

或者:

import pandas as pd

y =  pd.Series([1000, 1012, 1014, 1015, 1016, 1017, 1018, 1019])

y.cumsum()/y.sum()

结果现在是pd.Series类型:

0    0.123289
1    0.248058
2    0.373074
3    0.498212
4    0.623474
5    0.748860
6    0.874368
7    1.000000
dtype: float64

推荐阅读