开发者

I want to convert a matrix to a list python

Hi there I need to convert a matrix to a l开发者_运维问答ist as the example below

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)]

Thx in adavance


Is this a numpy matrix? If so, just use the tolist() method. E.g.:

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

This yields:

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


if you are using numpy and you want to just traverse the matrix as a list then you can just

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

This will not consume extra memory


The best way to do it is:

result = map(tuple, Matrix)


OR you can use one of those :

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜