Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I generate an array with both negative and positive numbers and specify the limits and the dimension of this array?

c=np.random.rand(10,2) generates an array of random numbers from in [0,1). Can I generate the same array (in terms of size) but with negative AND positive numbers? Moreover, can I choose the limits and the dimension of this array? for example if I want from -2 to 2.

like image 326
van boeren Avatar asked Nov 30 '22 16:11

van boeren


2 Answers

Use np.random.randint and pass the size parameter. For values in [-2, 2) and size (10, 2) you have:

In [32]: np.random.randint(-2, 2, (10, 2))
Out[32]:
array([[-1,  1],
       [-2,  0],
       [-1,  0],
       [-2, -2],
       [ 0, -2],
       [-2, -2],
       [ 0,  0],
       [ 1, -1],
       [ 0,  1],
       [-2, -1]])

Or use np.random.uniform for floats:

In [33]: size = (10, 2)

In [39]: np.random.uniform(-2, 2, size)
Out[39]:
array([[-1.1129566 , -1.94562947],
       [ 0.21356557, -1.96769933],
       [ 1.1481992 , -0.08494563],
       [ 0.12561175,  0.95580417],
       [-1.79335536, -1.01276994],
       [ 1.56808971,  0.15911181],
       [ 0.50987451, -1.39039728],
       [-1.57962641,  1.59555514],
       [-1.8318709 , -1.57055885],
       [ 0.682527  , -1.89022731]])
like image 72
Moses Koledoye Avatar answered Dec 05 '22 11:12

Moses Koledoye


If you don't want to generate uniform numbers from a normal distribution you could get a random number between 0 and 1, and the use that to build your random number between the min and max.

(np.random.rand(30) * 10) - 5

The above will give 30 numbers between [-5, +5)

like image 32
user566245 Avatar answered Dec 05 '22 13:12

user566245