многовариантный numpy не отображает нормальное распределение, пожалуйста, помогите исправить ошибку - PullRequest
0 голосов
/ 23 февраля 2012

Многомерный пакет numpy numpy.random.multivariate_normal..не возвращает нормальный график распределения ... пример, приведенный на сайте.

import matplotlib.pyplot as plt
x,y = np.random.multivariate_normal(mean,cov,5000).T
plt.plot(x,y,'x'); plt.axis('equal'); plt.show()

При построении не дает кривой нормального распределения. Я новичок в NumPy и я хочу получить нормальную кривую распределения .. поэтому, пожалуйста, помогите. Я хочу построить x, y и нормальный pdf в 2-х измерениях. То есть я хочу показать, что x и y следуют «многомерному» нормальному распределению.

Ответы [ 2 ]

7 голосов
/ 23 февраля 2012

numpy.random.multivariate_normal() выборки из многомерного нормального распределения. Построение двух координат из этих выборок друг против друга не покажет вам кривую нормального распределения 1D. Сама numpy не имеет функции, которая сама рассчитывает кривую 1D нормального распределения. Однако достаточно легко вычислить себя, если вы действительно этого хотите:

def normpdf(x, mean, std):
    z = (x - mean) / std
    return numpy.exp(-z**2/2.0)/numpy.sqrt(2*numpy.pi)/std
0 голосов
/ 23 февраля 2012

Я думаю, что для двумерного, как в вашем случае, вы можете посмотреть на формулу, приведенную в Википедии: http://en.wikipedia.org/wiki/Multivariate_normal_distribution

...