python - Shuffling NumPy array along a given axis -


given following numpy array,

> = array([[1, 2, 3, 4, 5], [1, 2, 3, 4, 5],[1, 2, 3, 4, 5]]) 

it's simple enough shuffle single row,

> shuffle(a[0]) > array([[4, 2, 1, 3, 5],[1, 2, 3, 4, 5],[1, 2, 3, 4, 5]]) 

is possible use indexing notation shuffle each of rows independently? or have iterate on array. had in mind like,

> numpy.shuffle(a[:]) > array([[4, 2, 3, 5, 1],[3, 1, 4, 5, 2],[4, 2, 1, 3, 5]]) # not real output 

though doesn't work.

you have call numpy.random.shuffle() several times because shuffling several sequences independently. numpy.random.shuffle() works on mutable sequence , not ufunc. shortest , efficient code shuffle rows of two-dimensional array a separately is

map(numpy.random.shuffle, a) 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -