我有一些問題矩陣:Python的矩陣,行和列
b= [[-2.5, 0.5], #b is random matrix
[-1.5, -0.5],
[-0.5, 0.5]]
如何通過B獲得:
b=[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
非常感謝
我有一些問題矩陣:Python的矩陣,行和列
b= [[-2.5, 0.5], #b is random matrix
[-1.5, -0.5],
[-0.5, 0.5]]
如何通過B獲得:
b=[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
非常感謝
>>> b= [[-2.5, 0.5], #b is random matrix
[-1.5, -0.5],
[-0.5, 0.5]]
>>> [[[val] for val in row] for row in b]
[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
說明:考慮清單:
>>> oned = [1, 2, 3]
你可以用一個列表理解重新創建:
>>> [val for val in oned]
[1, 2, 3]
然後只是包裝的每個元素在它自己的名單:
>>> [[val] for val in oned]
[[1], [2], [3]]
擴展,爲兩個維度。
正是我所建議的。 +1 – 2011-05-10 21:11:10
Claudiu's answer可能更直接,但這是一個遞歸遍歷任何深度列表的列表的替代解決方案。
>>> listify = lambda x: map(listify, x) if isinstance(x, list) else [x]
>>> listify(b)
[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
b真的是矩陣還是列表的列表? – talonmies 2011-05-10 19:59:00
它取決於b是來自numpy的列表或數組/矩陣。 – 2011-05-10 20:10:05
只有** class numpy.matrix **(http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html)創建了真正的矩陣。你的對象不是矩陣,而是列表的列表 – eyquem 2011-05-10 21:15:14