On Tuesday, March 12, 2013 2:59:29 PM UTC-7, Oscar Benjamin wrote:
> On 12 March 2013 20:21, llanitedave <llanited...@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

I don't think numpy is unreasonable for you or me.  I just started learning it 
recently, and I'm pretty jazzed about its possibilities.  I obtained an app 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.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to