将矩阵转换为列表

时间:2013-12-25 04:19:26

标签: python list numpy matrix type-conversion

我正在使用1x3的矩阵numpy。我的问题是:
是否存在将该矩阵转换为包含矩阵元素的元组的方法?例如,如果矩阵是

A=matrix([[1,2,3]])

获取

B=(1,2,3)

3 个答案:

答案 0 :(得分:3)

是的,你可以做一些简单的事情:

>>> A = matrix([[1,2,3]])
>>> B = A.tolist()
>>> B
[[1, 2, 3]]
>>> B = A.tolist()[0]
>>> B
[1, 2, 3]

编辑:

正如Christian指出的那样,我看到你已经将你想要的输出改为元组。正如克里斯蒂安所说,你需要做的就是:

>>> B = tuple(A.tolist()[0])
>>> B
(1, 2, 3)

A仍将作为矩阵运行,但B现在是一个元组,因此不会作为矩阵运行。

答案 1 :(得分:1)

如果您想从3x1,1x3获取列表,请使用flatten

>>> from numpy import matrix
>>> matrix([[1,2,3]]).flatten().tolist()[0]
[1, 2, 3]
>>> matrix([[1],[2],[3]]).flatten().tolist()[0]
[1, 2, 3]

使用A1 attribute替代方案:

>>> matrix([[1],[2],[3]]).A1.tolist()
[1, 2, 3]
>>> matrix([[1,2,3]]).A1.tolist()
[1, 2, 3]

答案 2 :(得分:0)

这个怎么样?

>>> import numpy as np
>>> m = np.matrix([[1,2,3]])
>>> m
matrix([[1, 2, 3]])
>>> B = tuple(m.A[0])
>>> B
(1, 2, 3)

编辑:受@ falsetru使用flatten的启发,这是一个更通用的解决方案:

>>> tuple(m.A.flatten())
(1, 2, 3)

我认为在flatten上使用array更有意义,因为它将2D数组转换为1D,而对于矩阵则无法做到这一点。