如何在python中提取密度函数概率(pandas-kde)



pandas.plot.kde()函数便于绘制连续随机变量的估计密度函数。它将数据x作为输入,并将装箱输入的概率p(x(显示为其输出。

我如何提取它计算的概率值?我不想仅仅绘制带宽样本的概率,而是想要一个数组或熊猫序列,其中包含它内部计算的概率值。

如果熊猫kde不能做到这一点,请让我知道scipy或其他中的任何等价物

有几种方法可以做到这一点。你可以自己计算,也可以从情节中得到。
  1. 正如@RichieV在这篇文章后面的评论中所指出的,你可以使用
data.plot.kde().get_lines()[0].get_xydata()
  1. 使用seaborn,然后与1(中相同:

您可以使用seaborn来估计内核密度,然后使用matplotlib来提取值(如本文所述(。您可以使用distplotkdeplot:

import seaborn as sns
# kde plot
x,y = sns.kdeplot(data).get_lines()[0].get_data()
# distplot
x,y = sns.distplot(data, hist=False).get_lines()[0].get_data()
  1. 您可以使用scipy.stats.gaussian_kde的基本方法来估计pandas使用的内核密度:
import scipy.stats
density = scipy.stats.gaussian_kde(data)

然后你可以用它来评估一组点:

x = np.linspace(0,80,200)
y = density(xs)

最新更新