Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #41152

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

References <mailman.3237.1363108626.2939.python-list@python.org> <0aa38f5a-0e5e-43cd-b6ba-69af6f37e94e@googlegroups.com> <bcb46e43-51c7-40ba-bd4a-3787ce9f8ceb@googlegroups.com>
From Oscar Benjamin <oscar.j.benjamin@gmail.com>
Date 2013-03-12 21:59 +0000
Subject Re: How can i create a random array of floats from 0 to 5 in python
Newsgroups comp.lang.python
Message-ID <mailman.3252.1363125597.2939.python-list@python.org> (permalink)

Show all headers | View raw


On 12 March 2013 20:21, llanitedave <llanitedave@veawb.coop> wrote:
> On Tuesday, March 12, 2013 10:47:25 AM UTC-7, Maarten wrote:
>> 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

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How can i create a random array of floats from 0 to 5 in python Norah Jones <nh.jones01@gmail.com> - 2013-03-12 17:11 +0000
  Re: How can i create a random array of floats from 0 to 5 in python Maarten <maarten.sneep@knmi.nl> - 2013-03-12 10:47 -0700
    Re: How can i create a random array of floats from 0 to 5 in python llanitedave <llanitedave@veawb.coop> - 2013-03-12 13:21 -0700
      Re: How can i create a random array of floats from 0 to 5 in python Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-03-12 21:59 +0000
        Re: How can i create a random array of floats from 0 to 5 in python llanitedave <llanitedave@veawb.coop> - 2013-03-12 22:35 -0700
        Re: How can i create a random array of floats from 0 to 5 in python llanitedave <llanitedave@veawb.coop> - 2013-03-12 22:35 -0700
    Re: How can i create a random array of floats from 0 to 5 in python llanitedave <llanitedave@veawb.coop> - 2013-03-12 13:21 -0700
  Re: How can i create a random array of floats from 0 to 5 in python Maarten <maarten.sneep@knmi.nl> - 2013-03-12 10:47 -0700

csiph-web