为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用scipy gaussian_kde获得概率密度函数?

如何使用scipy gaussian_kde获得概率密度函数?

潇湘沐 2021-04-30 04:52:50
我有一个1D数据集,保存在1D列表中。获得概率密度函数的最佳方法是什么?我尝试了使用scipy gaussian_kde的常用方法。array = np.array(values)kde = gaussian_kde(array)x = np.linspace(0, 50, 500)plt.plot(x, kde(x), label="", color="blue")plt.legend(loc='best')plt.show()生成的图不是预期的概率密度函数,因为对于每个x,概率密度函数应具有介于0和1之间的值。
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

使用以下代码。


import os

import matplotlib.pyplot as plt

import sys

import math

import numpy as np

import scipy.stats as st

from scipy.stats._continuous_distns import _distn_names

from scipy.optimize import curve_fit


def get_pdf(latency_list):

    np_array = np.array(latency_list)  # convert the list into a numpy array

    ag = st.gaussian_kde(np_array)  # calculate the kernel density function for the latency values

    # list of equidistant values in the range of the latency values

    x = np.linspace(min(latency_list), max(latency_list), (max(latency_list) - min(latency_list)) * 10)

    y = ag(x)  # evaluate the latency values for each x value

    return x, y


查看完整回答
反对 回复 2021-05-11
  • 1 回答
  • 0 关注
  • 955 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号