从数组python中随机选择项目

时间:2012-03-27 17:44:42

标签: python numpy

  

可能重复:
  How do I randomly select an item from a list using Python?

我有两个数组pool_list_X,pool_list_Y。两者都有一个numpy数组作为列表中的元素。 所以基本上

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

并且pool_list_x的每个元素在pool_list_y

中都有对应的元素
which is to say, that pool_list_x[i] corresponds to pool_list_y[i]

现在。如果我必须从list_x中随机选择10个元素(因此相应的元素为list_y)。我该怎么做呢。 我可以想到一种非常天真的方式......随机生成数字。和东西..但这不是很有效..什么是pythonic方式来做到这一点。 感谢

2 个答案:

答案 0 :(得分:24)

不确定我是否理解百分之百,但我认为使用ziprandom.sample可能会有效:

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

一些简短的解释:

  • zip会创建一个对列表,即它确保您选择相应的元素 - 如果您选择一个,则自动获取另一个(Zip([1,2,3],[4,5,6]) = [(1,4),(2,5),(3,6)]
  • random.sample(l,n)从列表n
  • 中随机选择l个元素

答案 1 :(得分:4)

有一个函数允许你获取给定序列的随机元素:

import random
my_choice = random.choice(my_sequence)

有关详细信息,请参阅the documentation