我想获得数组的 n 行的所有可能组合。我不在乎它们是什么顺序,所以这不是一个排列。
例子:
我有一个数组:
[(1,2,3), (4,5,6), (7,8,9)]
问题: 我想找到两行的所有组合:
[(1,2,3), (4,5,6)]
[(1,2,3), (7,8,9)]
…
太感谢了!!
我想获得数组的 n 行的所有可能组合。我不在乎它们是什么顺序,所以这不是一个排列。
例子:
我有一个数组:
[(1,2,3), (4,5,6), (7,8,9)]
问题: 我想找到两行的所有组合:
[(1,2,3), (4,5,6)]
[(1,2,3), (7,8,9)]
…
太感谢了!!
使用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))
与 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])))