从两个向量中选择随机值(python)

时间:2011-07-29 10:05:44

标签: python arrays random

我有两个载体

   A
   B
耦合的

,我的意思是它们在给定位置定义某个标量场。

我想从A中选择1000个随机项目,并将其与其他1000个B耦合项目进行对比。

使用此代码

  A_rand=random.sample(A,1000)

我选择了A的1000个随机值。例如,它们是A [1],A [50],A [49]等。

如何选择B [1],B [50],B [49]等。 ?

我试过

 B_rand=B[(A==A_rand)]

但它只返回一个值。我做错了什么?

2 个答案:

答案 0 :(得分:2)

您可以选择索引,而不是项目:

rand = random.sample(range(len(A)), 1000)

然后您可以使用A[rand[i]]B[rand[i]]

对于所有选定的项目:

A_rand = [A[x] for x in rand]
B_rand = [B[x] for x in rand]

答案 1 :(得分:2)

您也可以预先将它们与zip结合使用,然后选择样本

rand = random.sample(zip(A, B), 1000)

这样你就会得到一个包含元组的列表。

例如[(A[1],B[1]),(A[50],B[50]),(A[49],B[49]),...]

然后从该列表中获取A_randB_rand,您可以使用

解压缩它们
A_rand, B_rand = zip(*rand)