On Tue, Feb 10, 2009 at 11:29 AM, Mark Janikas <mjani...@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]
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to