Random selection of items from a Python array


Possible Duplicate:
How do I randomly select an item from a list using Python?

I have two arrays pool_list_X , pool_list_Y. Both have a numpy array as element in the list. So basically

pool_list_x[0] = [1 2 3 4] # a multidimensional numpy array.

and every element of pool_list_x has corresponding element in pool_list_y

which is to say, that pool_list_x[i] corresponds to pool_list_y[i]

Now. if I have to randomly select 10 elements from list_x (and hence the corresponding elements to list_y). how do i do this. I can think of a very naive way.. randomly generate numbers. and stuff.. but that is not very efficient.. what is the pythonic way to do this. Thanks

Not sure if I understand you one hundred percent, but I think using zip and random.sample might work:

import random
random.sample(zip(list_a,list_b), 10)

Some short explanations:

  • zip will create a list of pairs, i.e. it ensures that you pick corresponding elements - if you pick one, you automatically get the other (Zip([1,2,3],[4,5,6]) = [(1,4),(2,5),(3,6)])
  • random.sample(l,n) randomly selects n elements from a list l