Ich möchte eine Gauß-Verteilung in Python mit den X- und Y-Dimensionen, die die Position und die z-Dimension die Größe einer bestimmten Menge bezeichnen.Generieren von 3D-Gauß-Verteilung in Python
Die Verteilung hat einen Maximalwert von 2e6 und eine Standardabweichung Sigma = 0,025.
In MATLAB ich dies mit tun können:
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
, was ich bisher habe, ist:x = np.linspace(-1,1,30)
y = np.linspace(-1,1,30)
mu = (np.median(x),np.median(y))
sigma = (.025,.025)
Es gibt eine Numpy Funktion numpy.random.multivariate_normal was angeblich tun können das gleiche wie MATLABs mvnpdf, aber ich habe Mühe, die documentation zu entziffern. Insbesondere, um die Kovarianzmatrix zu erhalten, die von numpy.random.multivariate_normal benötigt wird.
Ich glaube, Sie falsch denken, dass '' numpy.random.multivariate_normal() '' tut das gleiche, weil es gibt Ihnen nicht die pdf der Verteilung, es zieht nur Zufallszahlen aus der Verteilung, die in der Kovarianzmatrix definiert ist, sowie die Erwartungswerte mu. – Nras
Ich sehe was du meinst ja. Irgendwelche Vorschläge, wie man es dann erreicht? – Jonny
Ich sehe Ihre _xy_ Verteilung ist _separable_, das heißt, es ist das Produkt einer _x_ Gaußschen Verteilung mal einer _y_ Gaußschen Verteilung. Vielleicht hilft das bei Python –