HOWTO · Python

Calcola la funzione di distribuzione cumulativa in Python

Questo articolo spiega il metodo di calcolo della funzione di distribuzione cumulativa in Python. Può essere calcolato usando le funzioni arange() o linspace() di numpy

In questa pagina

Il termine funzione di distribuzione cumulativa o CDF è una funzione y=f(x), dove y rappresenta la probabilità che l’intero x, o qualsiasi numero inferiore a x, venga selezionato casualmente da una distribuzione.

Viene calcolato in Python utilizzando le seguenti funzioni della libreria NumPy.

  1. Funzione numpy.arange() che restituisce un ndarray di valori equidistanti.
  2. Funzione numpy.linspace() che restituisce un ndarray di valori equispaziati all’interno di un dato intervallo.

Usa numpy.arange() per calcolare il CDF in Python

La libreria standard NumPy contiene la funzione arange() utilizzata per determinare il CDF in Python.

Per questo, importa prima la libreria NumPy.

La funzione arange() restituisce un ndarray di valori equidistanti.

Di seguito è riportato un esempio che dimostra l’implementazione della funzione CDF utilizzando la funzione numpy.arange() in Python.

import matplotlib.pyplot as plt
import numpy

data = numpy.random.randn(5)
print("The data is-", data)
sorted_random_data = numpy.sort(data)
p = 1.0 * numpy.arange(len(sorted_random_data)) / float(len(sorted_random_data) - 1)
print("The CDF result is-", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

Qui, la funzione randn() viene utilizzata per restituire campioni di dati utilizzando la distribuzione normale standard. Poiché viene menzionato randn(5), viene costruito un 1Darray con 5 valori casuali.

Successivamente, i dati vengono ordinati utilizzando la funzione sort(), dopodiché viene utilizzata la funzione arange() per calcolare il CDF.

Produzione :

The data is- [ 0.14213322 -1.28760908  0.94533922  0.82004319  1.08232731]
The CDF result is- [0.   0.25 0.5  0.75 1.  ]

Il grafico viene visualizzato secondo la funzione CDF come.

pitone cdf

Usa numpy.linspace() per calcolare il CDF in Python

La libreria standard NumPy contiene la funzione linspace() utilizzata per determinare il CDF in Python. Per questo, importa prima la libreria NumPy.

La funzione linspace() restituisce un ndarray di numeri equidistanti su un intervallo specificato.

Ecco un esempio che dimostra l’implementazione della funzione CDF usando numpy.linspace() in Python.

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(5)
print("The data is-", data)
sorted_random_data = np.sort(data)
np.linspace(0, 1, len(data), endpoint=False)

print("The CDF result using linspace =\n", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

Qui, la funzione randn() viene utilizzata per restituire campioni di dati utilizzando la distribuzione normale standard. Successivamente, i dati vengono ordinati utilizzando la funzione sort(), dopodiché viene utilizzata la funzione arange() per calcolare il CDF.

Produzione:

The data is- [-0.92106668 -0.05998132  0.02102705 -0.84778184  0.90815869]
The CDF result using linspace =
 [0.   0.25 0.5  0.75 1.  ]

Il grafico viene visualizzato secondo la funzione CDF come di seguito.

pitone cdf 2