我想将矩阵转换为列表python

时间:2010-10-29 03:36:44

标签: python

你好 我需要将矩阵转换为列表,如下例所示

Matrix:
[[  1.   6.  13.  10.   2.]
 [  2.   9.  10.  13.  15.]
 [  3.  15.  13.  14.  16.]
 [  4.   5.  14.  13.   6.]
 [  5.  18.  16.   4.   3.]
 [  6.   7.  12.  18.   3.]
 [  7.   1.   8.  17.  11.]
 [  8.  14.   5.   4.  16.]
 [  9.  16.  18.  17.  15.]
 [ 10.   8.   9.  15.  17.]
 [ 11.  11.  17.  18.  12.]]

List:
[(1, 6, 13, 10, 2),  (2, 9, 10, 13, 15), (3, 15, 13, 14, 16),
 (4, 5, 14, 13, 6),  (5, 18, 16, 4, 3),  (6, 7, 12, 18, 3), 
 (7, 1, 8, 17, 11),  (8, 14, 5, 4, 16),  (9, 16, 18, 17, 15),
 (10, 8, 9, 15, 17), (11, 11, 17, 18, 12)]

在诉求中

4 个答案:

答案 0 :(得分:7)

这是一个numpy矩阵吗?如果是这样,请使用tolist()方法。 E.g:

import numpy as np
x = np.matrix([[1,2,3],
               [7,1,3],
               [9,4,3]])
y = x.tolist()

这会产生:

y --> [[1, 2, 3], [7, 1, 3], [9, 4, 3]]

答案 1 :(得分:2)

最好的方法是:

result = map(tuple, Matrix)

答案 2 :(得分:1)

如果您正在使用numpy,并且您想要将矩阵作为列表遍历,那么您可以

from numpy import array
m = [[  1.   6.  13.  10.   2.]
 [  2.   9.  10.  13.  15.]
 [  3.  15.  13.  14.  16.]
 [  4.   5.  14.  13.   6.]
 [  5.  18.  16.   4.   3.]
 [  6.   7.  12.  18.   3.]
 [  7.   1.   8.  17.  11.]
 [  8.  14.   5.   4.  16.]
 [  9.  16.  18.  17.  15.]
 [ 10.   8.   9.  15.  17.]
 [ 11.  11.  17.  18.  12.]]

for x in array(m).flat:
   print x

这不会消耗额外的内存

答案 3 :(得分:0)

或者您可以使用其中之一:

1- li = list(i for j in yourMatrix for i in j)
2- li = sum(yourMatrix, [])