[英]How to get probability density function using scipy gaussian_kde?
I have a 1D data set which is saved in a 1D list. 我有一个1D数据集,保存在1D列表中。 What is the best way to get the probability density function? 获得概率密度函数的最佳方法是什么? I tried the usual approach of using scipy gaussian_kde. 我尝试了使用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()
Produced graph is not the expected probability density function, since probability density functions should have a value between 0 and 1 for each x. 生成的图不是预期的概率密度函数,因为对于每个x,概率密度函数应具有介于0和1之间的值。
Thanks 谢谢
Use the following code. 使用以下代码。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.