2016-02-16 62 views
-3

合併兩個陣列我要合併在python兩個陣列的所有可能的組合使用Python numpy的

前一個= [1,2,3]和B = [4,5,6]應該給輸出

c= [(1,4),(1,5),(1,6) 
    (2,4),(2,5),(2,6) 
    (3,4),(3,5),(3,6)] 

以這個特定的順序(即順序3x3)。這個順序在這裏特別重要。

回答

10

itertools.product函數就是這樣做的。

>>> import itertools 
>>> a, b = [1,2,3], [4,5,6] 
>>> list(itertools.product(a, b)) 
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)] 

注:這很可能是,你並不需要list()的情況下,這只是在這裏顯示輸出。

+0

謝謝CAMIL。但我以此爲例。你如何做幾件事?我原來的數組有100個元素,每個 –

+0

@amateur_programmer你有100個你想「合併」的元素100個列表?還是兩個100個元素的列表?無論哪種情況,您都可以簡單地爲函數添加更多參數。 – Keelan

+0

我有兩個100個元素的列表,我想將它們合併成所有可能的組合。之前我沒有提到它,但是隻使用了numpy –

0

這將返回一個包含列表a和b的所有排列的列表。

import itertools 
map(''.join, itertools.chain(itertools.product(a, b), itertools.product(b, a)) 
1

您正在尋找itertools.product

from itertools import product 

a = [1,2,3] 
b = [4,5,6] 

print(list(product(a, b))) 

輸出

[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]