Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate two-dimensional normal distribution given a mean and standard deviation

Tags:

python

numpy

I'm looking for a two-dimensional analog to the numpy.random.normal routine, i.e. numpy.random.normal generates a one-dimensional array with a mean, standard deviation and sample number as input, and what I'm looking for is a way to generate points in two-dimensional space with those same input parameters.

Looks like numpy.random.multivariate_normal can do this, but I don't quite understand what the cov parameter is supposed to be. The following excerpt describes this parameter in more detail and is from the scipy docs:

Covariance matrix of the distribution. Must be symmetric and positive-semidefinite for “physically meaningful” results.

Later in the page, in the examples section, a sample cov value is given:

cov = [[1,0],[0,100]] # diagonal covariance, points lie on x or y-axis

The concept is still quite opaque to me, however.

If someone could clarify what the cov should be or suggest another way to generate points in two-dimensional space given a mean and standard deviation using python I would appreciate it.

like image 721
Ryan Avatar asked Oct 23 '25 04:10

Ryan


2 Answers

If you pass size=[1, 2] to the normal() function, you get a 2D-array, which is actually what you're looking for:

>>> numpy.random.normal(size=[1, 2])
array([[-1.4734477 , -1.50257962]])
like image 74
tamasgal Avatar answered Oct 25 '25 21:10

tamasgal


normal generated random points,

np.random.normal(10, 5, size=[100, 2])

10 is the mean value, 5 is the standart deviation.

like image 37
samet gok Avatar answered Oct 25 '25 21:10

samet gok



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!