2011-07-29 28 views
0

隨機值I有兩個向量選擇從兩個矢量(蟒)

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

您可以選擇的索引,而不是項目:

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] 
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) 
+0

編輯,以顯示如何解壓 –