我正在使用1x3的矩阵numpy。我的问题是:
是否存在将该矩阵转换为包含矩阵元素的元组的方法?例如,如果矩阵是
A=matrix([[1,2,3]])
获取
B=(1,2,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,而对于矩阵则无法做到这一点。