[Numpy-discussion] numpy.random.rand function doesn't take tuple

Bill Baxter wbaxter at gmail.com
Mon Aug 21 18:48:09 CDT 2006


If you like, here's a rand function that takes either a sequence or a
tuple.  I use this for interactive sessions.

def rand(*shape):
    """
    Return an array of the given dimensions which is initialized to
    random numbers from a uniform distribution in the range [0,1).

    rand(d0, d1, ..., dn) -> random values
    or
    rand((d0, d1, ..., dn)) -> random values
    """
    if len(shape) == 0 or not hasattr(shape[0],'__getitem__'):
        return numpy.random.rand(*shape)
    else:
        if len(shape) != 1:
            raise TypeError('Argument should either be a tuple or an
argument list')
        else:
            return numpy.random.rand(*shape[0])


On 8/22/06, David Grant <davidgrant at gmail.com> wrote:
>
>
>
> On 8/21/06, Robert Kern <robert.kern at gmail.com> wrote:
> >
> > David Grant wrote:
> > > I was a bit surprised today to find that numpy.random.rand doesn't
> > > take in a tuple as input for the dimensions of the desired array. I am
> > > very used to using a tuple for zeros, ones. Also, wouldn't this mean
> > > that it would not be possible to add other non-keyword arguments to
> > > rand later?
> >
> > Don't use rand(), then. Use random(). rand()'s sole purpose in life is
> > to *not*
> > take a tuple. If you like, you can read the archives on the several
> > (long)
> > discussions on this and why things are the way they are now. We finally
> > achieved
> > something resembling consensus, so please let's not resurrect this
> > argument.
>
>
>
> Thanks everyone. My only question now is why there is random_sample and
> random. My guess is that one is there for compatibility with older releases
> and so I'm not bothered by it.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20060822/4ac5f82b/attachment-0001.html 


More information about the Numpy-discussion mailing list