Как я могу создать комбинаторные строки массива с несколькими столбцами? - PullRequest
0 голосов
/ 14 октября 2019

Я хочу получить все возможные комбинации из n строк массива. Мне все равно, в каком порядке они находятся, так что это не перестановка.

Пример:

У меня есть массив:

[(1,2,3), (4,5,6), (7,8,9)]

Вопрос: Я хочу найти все комбинации из двух строк:

[(1,2,3), (4,5,6)]
[(1,2,3), (7,8,9)]
…

Спасибо большое !!

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Попробуйте это в сочетании с itertools

import itertools
test = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
for i in range(0, len(test)):
    for j in sorted(np.arange(len(test)-1,i,-1)):
        print(test[i])
        print(test[j])
        print(list(itertools.product(test[i], test[j])))
0 голосов
/ 14 октября 2019

Используйте itertools.combinations и приведите комбинации к списку, см. Документы :

from itertools import combinations

lst = [(1,2,3), (4,5,6), (7,8,9)]
for x in combinations(lst, 2):
    print(list(x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...