van boeren van boeren - 1 month ago 6
Python Question

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.

Answer

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]])
Comments