我在 Windows 上工作。我只想输入一个数组,得到数组的cdf。
最佳答案
首先,您可以像这样实现 CDF:
from bisect import bisect_left
class discrete_cdf:
def __init__(self, data):
self._data = data # must be sorted
self._data_len = float(len(data))
def __call__(self, point):
return (len(self._data[:bisect_left(self._data, point)]) /
self._data_len)
使用上面的类,你可以这样绘制它:
from scipy.stats import norm
import matplotlib.pyplot as plt
cdf = discrete_cdf(your_data)
xvalues = range(0, max(your_data))
yvalues = [cdf(point) for point in xvalues]
plt.plot(xvalues, yvalues)
编辑:arange
在那里没有意义,对于 x 和 x+1 之间的所有点,cdf 将始终相同。
关于Python:如何在给定数字数组的情况下绘制 cdf 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149838/