所有矩阵行组合

时间:2013-07-14 17:56:41

标签: python algorithm combinations

使用下面创建的矩阵:

matrix = []
for i in range(0, N):
    row = []
    for j in range(0, M):
        row.append(i *j)
    matrix.append(row)

我需要从这个矩阵中获取所有行组合。例如:

[matrix[1][1], matrix[2][1], ... , matrix[m][1]]
[matrix[1][1], matrix[2][1], ... , matrix[m][2]]
[...]
[matrix[1][1], matrix[2][n], ... , matrix[m][n]]
[...]
[matrix[1][n], matrix[2][n], ... , matrix[m][n]]

有关如何使用Python执行此操作的任何想法?

1 个答案:

答案 0 :(得分:2)

从更简单的方式开始定义矩阵:

>>> M, N = 3, 4
>>> matrix = [
    [i * j for j in range(M)]
    for i in range(N)
]
>>> matrix
[[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]

然后使用itertools.product

import itertools

for row_combination in itertools.product(*matrix):
    print row_combination
(0, 0, 0, 0)
(0, 0, 0, 3)
(0, 0, 0, 6)
...
(0, 2, 4, 3)
(0, 2, 4, 6)