2016-02-16 6 views
-3

Я хочу, чтобы объединить два массива в Python со всеми возможными комбинациямиPython слияния двух массивов с помощью NumPy

ех а = [1, 2, 3] и б = [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

Спасибо Камилем. Но я опубликовал это в качестве примера. Как вы это делаете для нескольких элементов? Мой исходный массив имеет по 100 элементов каждый –

+0

@amateur_programmer у вас есть 100 списков из 100 элементов, которые вы хотите «объединить»? Или два списка из 100 элементов? В любом случае вы можете просто добавить дополнительные аргументы в функцию. – Keelan

+0

У меня есть 2 списка по 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)] 
Смежные вопросы