[SciPy-Dev] numpy.random.* call convention

Robert Rehammar robert.open at rehammar.se
Thu Jun 7 01:48:58 EDT 2018


Ah, thanks Robert, that solved it. It was actually my second suggestion 
how to solve it, but I missed the prepend-bit. Maybe that could be added 
to the documentation. I appended it :)

Best,

Robert


On 06/07/2018 07:44 AM, Robert Kern wrote:
> On Wed, Jun 6, 2018 at 10:26 PM Robert Rehammar 
> <robert.open at rehammar.se <mailto:robert.open at rehammar.se>> wrote:
> >
> > Dear num-py developers,
> >
> > For the methods in numpy.random, the distributions typically have the
> > signature (a, b, ...[, size]). a, b, ... are parameters to the
> > distributions and size is optional that can be used to control how may
> > samples to draw and the shape of the returned structure. The parameters
> > can also be array_like to draw from different (parametrized) 
> distributions.
> >
> > However, it is not what I can see, possible to have the parameters
> > array_like and at the same time use size!=None.
>
> Sure, you can! Let `shape` be `a.shape` (or the broadcasted shape of 
> all of those parameters. *Prepend* your desired number (or shape) of 
> draws to this `shape` to get the `size` that you need to specify. So 
> if I have two different `scale` parameters for a normal distribution, 
> and I want 12 draws from each in a (3,4) shape (for whatever forsaken 
> reason):
>
> [~]
> |4> np.random.normal(0.0, [1.0, 2.0], size=(3, 4, 2))
> array([[[ 1.72551057,  2.33545059],
>         [-1.45966289,  4.81820745],
>         [-0.13912257,  1.79127867],
>         [ 0.27693464,  1.45313416]],
>
>        [[ 1.41031607,  3.18113465],
>         [ 1.64033152,  1.47355763],
>         [ 1.18554024, -1.11605743],
>         [ 0.73556545,  2.44352574]],
>
>        [[-0.42889339,  3.88389374],
>         [-0.24146162,  0.54163374],
>         [ 0.53821574,  0.07862412],
>         [ 0.7418073 , -2.35439217]]])
>
> It's *not* a particularly intuitive API, obviously, but it should let 
> you do everything that you want to do.
>
> --
> Robert Kern
>
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at python.org
> https://mail.python.org/mailman/listinfo/scipy-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20180607/7aa7c1a2/attachment-0001.html>


More information about the SciPy-Dev mailing list