[Numpy-discussion] Permutations in Simulations`

Keith Goodman kwgoodman@gmail....
Tue Feb 10 14:18:55 CST 2009


On Tue, Feb 10, 2009 at 11:29 AM, Mark Janikas <mjanikas@esri.com> wrote:
> I want to create an array that contains a column of permutations for each
> simulation:
>
> import numpy as NUM
>
> import numpy.random as RAND
>
> x = NUM.arange(4.)
>
> res = NUM.zeros((4,100))
>
>
> for sim in range(100):
>
> res[:,sim] = RAND.permutation(x)
>
>
> Is there a way to do this without a loop?  Thanks so much ahead of time…

Does this work? Might not be faster but it does avoid the loop.

import numpy as np

def weirdshuffle(nx, ny):
    x = np.ones((nx,ny)).cumsum(0, dtype=np.int) - 1
    yidx = np.ones((nx,ny)).cumsum(1, dtype=np.int) - 1
    xidx = np.random.rand(nx,ny).argsort(0).argsort(0)
    return x[xidx, yidx]


More information about the Numpy-discussion mailing list