How can i create a random array of floats from 0 to 5 in python

N

Norah Jones

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?
 
M

Maarten

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?

Use numpy

import numpy as np
np.random.uniform(0, 5, 100)

# note that the values are from the interval [0, 5)

Maarten
 
M

Maarten

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?

Use numpy

import numpy as np
np.random.uniform(0, 5, 100)

# note that the values are from the interval [0, 5)

Maarten
 
L

llanitedave

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?



Use numpy



import numpy as np

np.random.uniform(0, 5, 100)



# note that the values are from the interval [0, 5)



Maarten

While numpy would work, I fail to see how encouraging the op to download and install a separate library and learn a whole new set of tools would be beneficial by default, without knowing the purpose of the need. This is likerecommending an RPG to fix a sticky door hinge.
 
L

llanitedave

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?



Use numpy



import numpy as np

np.random.uniform(0, 5, 100)



# note that the values are from the interval [0, 5)



Maarten

While numpy would work, I fail to see how encouraging the op to download and install a separate library and learn a whole new set of tools would be beneficial by default, without knowing the purpose of the need. This is likerecommending an RPG to fix a sticky door hinge.
 
O

Oscar Benjamin

Use numpy
[SNIP]

While numpy would work, I fail to see how encouraging the op to download and install a separate library and learn a whole new set of tools would be beneficial by default, without knowing the purpose of the need. This is like recommending an RPG to fix a sticky door hinge.

This suggestion comes after others that show how to use the stdlib's
random module. I don't think it's unreasonable to recommend numpy for
this. If you want to create *arrays* of random numbers then why not
use a library that provides an API specifically for that? You can test
yourself to see that numpy is 10x faster for large arrays:

Python 2.7 on Linux:
$ python -m timeit -s 'import random' -- '[random.uniform(0, 5) for x
in range(1000)]'
1000 loops, best of 3: 729 usec per loop
$ python -m timeit -s 'import random' -- '[random.random() * 5 for x
in range(1000)]'
1000 loops, best of 3: 296 usec per loop
$ python -m timeit -s 'import numpy' -- 'numpy.random.uniform(0, 5, 1000)'
10000 loops, best of 3: 32.2 usec per loop

I would use numpy for this mainly because if I'm creating arrays of
random numbers I probably want to use them in ways that are easier
with numpy arrays. There's also a chance the OP might benefit more
generally from using numpy depending on what they're working on.


Oscar
 
L

llanitedave

On Tuesday, March 12, 2013 6:11:10 PM UTC+1, Norah Jones wrote:

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?

Use numpy
[SNIP]

While numpy would work, I fail to see how encouraging the op to download and install a separate library and learn a whole new set of tools would be beneficial by default, without knowing the purpose of the need. This is like recommending an RPG to fix a sticky door hinge.



This suggestion comes after others that show how to use the stdlib's

random module. I don't think it's unreasonable to recommend numpy for

this. If you want to create *arrays* of random numbers then why not

use a library that provides an API specifically for that? You can test

yourself to see that numpy is 10x faster for large arrays:



Python 2.7 on Linux:

$ python -m timeit -s 'import random' -- '[random.uniform(0, 5) for x

in range(1000)]'

1000 loops, best of 3: 729 usec per loop

$ python -m timeit -s 'import random' -- '[random.random() * 5 for x

in range(1000)]'

1000 loops, best of 3: 296 usec per loop

$ python -m timeit -s 'import numpy' -- 'numpy.random.uniform(0, 5, 1000)'

10000 loops, best of 3: 32.2 usec per loop



I would use numpy for this mainly because if I'm creating arrays of

random numbers I probably want to use them in ways that are easier

with numpy arrays. There's also a chance the OP might benefit more

generally from using numpy depending on what they're working on.





Oscar

I don't think numpy is unreasonable for you or me. I just started learningit recently, and I'm pretty jazzed about its possibilities. I obtained anapp for work that uses it, and now it's up to me to maintain it, so learning it is a good idea for me regardless. Now I'm starting to fantasize about other things I could do with it.

But the OP appears like a pretty basic beginner, and I really think that for such a entry-level knowledge scale, we should stick to the standard library until they're ready to take on more sophisticated tasks. "Premature Optimization" is the analogy that comes to mind.
 
L

llanitedave

On Tuesday, March 12, 2013 6:11:10 PM UTC+1, Norah Jones wrote:

I want to create a random float array of size 100, with the values in the array ranging from 0 to 5. I have tried random.sample(range(5),100) but that does not work. How can i get what i want to achieve?

Use numpy
[SNIP]

While numpy would work, I fail to see how encouraging the op to download and install a separate library and learn a whole new set of tools would be beneficial by default, without knowing the purpose of the need. This is like recommending an RPG to fix a sticky door hinge.



This suggestion comes after others that show how to use the stdlib's

random module. I don't think it's unreasonable to recommend numpy for

this. If you want to create *arrays* of random numbers then why not

use a library that provides an API specifically for that? You can test

yourself to see that numpy is 10x faster for large arrays:



Python 2.7 on Linux:

$ python -m timeit -s 'import random' -- '[random.uniform(0, 5) for x

in range(1000)]'

1000 loops, best of 3: 729 usec per loop

$ python -m timeit -s 'import random' -- '[random.random() * 5 for x

in range(1000)]'

1000 loops, best of 3: 296 usec per loop

$ python -m timeit -s 'import numpy' -- 'numpy.random.uniform(0, 5, 1000)'

10000 loops, best of 3: 32.2 usec per loop



I would use numpy for this mainly because if I'm creating arrays of

random numbers I probably want to use them in ways that are easier

with numpy arrays. There's also a chance the OP might benefit more

generally from using numpy depending on what they're working on.





Oscar

I don't think numpy is unreasonable for you or me. I just started learningit recently, and I'm pretty jazzed about its possibilities. I obtained anapp for work that uses it, and now it's up to me to maintain it, so learning it is a good idea for me regardless. Now I'm starting to fantasize about other things I could do with it.

But the OP appears like a pretty basic beginner, and I really think that for such a entry-level knowledge scale, we should stick to the standard library until they're ready to take on more sophisticated tasks. "Premature Optimization" is the analogy that comes to mind.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top