2

I have a basic understanding using numpy to create a matrix, but the context in which I have to create one confuses me. For example, I need to create a 2X1000 matrix with normally distributed values with mean 0 and standard deviation of 1. I'm not sure what it means to make a matrix with these conditions.

0

2 Answers 2

3

Besides what was writeen above by CoDEmanX, From numpy.random.normal we can read about the generic Normal Distribution in numpy: numpy.random.normal(loc=0.0, scale=1.0, size=None) Where: loc is the Mean of the distribution and scale is the standard deviation (square root of variance).

import numpy as np 
A = np.random.normal(loc =0, scale =1, size=(2, 1000))
print(A)     

But if these examples are confusing, then consider that

np.random.normal()

simply gives you a random number, and you can create your own custom matrix:

import numpy as np
A = [ [np.random.normal() for i in range(1000)]    for j in range(2) ]
A = np.array(A)
Sign up to request clarification or add additional context in comments.

Comments

1

If you refer to the numpy docs, whether there are utility functions that facilitate you reaching your goal, you'll come across a normal distribution function:

numpy.random.standard_normal(size=None)

standard_normal(size=None)
Returns samples from a Standard Normal distribution (mean=0, stdev=1).

The simple average is 0, the standard deviation 1.

arr = numpy.random.standard_normal((2, 1000))

print(arr.mean()) # -0.027...
print(arr.std()) # 1.0272...

Note that it's not exactly 0 or 1.

I still recommend to read about normal distributation and standard deviation / variance, eventhough numpy offers a simple solution.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.