рисовать CDF, читая значения из файла: matplotlib - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужно нарисовать cdf целочисленных значений, прочитанных из файла.Я следую примеру здесь .Я не уверен, как я могу нормализовать данные для PDF, а затем вычислить PDF.

import numpy as np
from pylab import *

with open ("D:/input_file.txt", "r+") as f:
    data = f.readlines()
    X = [int(line.strip()) for line in data]
    Y  = exp([-x**2 for x in X])  # is this correct? 

    # Normalize the data to a proper PDF
    Y /= ... # not sure what to write here

    # Compute the CDF
    CY = ... # not sure what to write here

    # Plot both
    plot(X,Y)
    plot(X,CY,'r--')

    show()

1 Ответ

0 голосов
/ 28 сентября 2018

Я могу предложить ответ, в котором вы определяете функцию плотности вероятности (PDF) и функцию кумулятивного распределения (CDF), используя NumPy.

import numpy as np
# -----------------
data = [88,93,184,91,107,170,88,107,167,90];
# -----------------
# get PDF:
ydata,xdata = np.histogram(data,bins=np.size(data),normed=True);
# ----------------
# get CDF:
cdf = np.cumsum(ydata*np.diff(xdata));
# -----------------
print 'Sum:',np.sum(ydata*np.diff(xdata))

Я использую гистограмму метода Numpy, которая даст мне PDF, а затем я вычислю CDF из PDF.

...