Voglio generare una distribuzione gaussiana in Python con le dimensioni xey che denotano la posizione e la dimensione z che denota la grandezza di una certa quantità.Generazione della distribuzione gaussiana 3D in Python
La distribuzione ha un valore massimo di 2e6 e una sigma di deviazione standard = 0,025.
In MATLAB posso farlo con:
x1 = linspace(-1,1,30);
x2 = linspace(-1,1,30);
mu = [0,0];
Sigma = [.025,.025];
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = 314159.153*reshape(F,length(x2),length(x1));
surf(x1,x2,F);
In Python, quello che ho finora è:
x = np.linspace(-1,1,30)
y = np.linspace(-1,1,30)
mu = (np.median(x),np.median(y))
sigma = (.025,.025)
c'è una funzione numpy.random.multivariate_normal Numpy cosa può presumibilmente fare lo stesso di mvnpdf di MATLAB, ma sto lottando per capire il documentation. Soprattutto nell'ottenere la matrice di covarianza richiesta da numpy.random.multivariate_normal.
Penso che tu sia sbagliato pensare che '' numpy.random.multivariate_normal() '' fa la stessa cosa, perché non ti fornisce il pdf della distribuzione, ma estrae solo numeri casuali dalla distribuzione definita nella matrice di covarianza, nonché i valori di aspettativa mu. – Nras
Capisco cosa intendi, sì. Qualche suggerimento su come realizzarlo allora? – Jonny
Vedo che la tua distribuzione _xy_ è _separable_, ovvero, è il prodotto di una _x_ distribuzione gaussiana di una distribuzione _y_ gaussiana. Forse potrebbe essere d'aiuto con Python –