有几种方法可以做到这一点。你可以自己计算,也可以从情节中得到。
pandas.plot.kde()
函数便于绘制连续随机变量的估计密度函数。它将数据x作为输入,并将装箱输入的概率p(x(显示为其输出。
我如何提取它计算的概率值?我不想仅仅绘制带宽样本的概率,而是想要一个数组或熊猫序列,其中包含它内部计算的概率值。
如果熊猫kde不能做到这一点,请让我知道scipy或其他中的任何等价物
- 正如@RichieV在这篇文章后面的评论中所指出的,你可以使用
data.plot.kde().get_lines()[0].get_xydata()
- 使用
seaborn
,然后与1(中相同:
您可以使用seaborn来估计内核密度,然后使用matplotlib
来提取值(如本文所述(。您可以使用distplot
或kdeplot
:
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()
- 您可以使用scipy.stats.gaussian_kde的基本方法来估计
pandas
使用的内核密度:
import scipy.stats
density = scipy.stats.gaussian_kde(data)
然后你可以用它来评估一组点:
x = np.linspace(0,80,200)
y = density(xs)