2016-01-23 46 views
0

我是python的新手,正在努力解決以下問題。訪問矩陣中的每第二行並將其保存到一個新矩陣中,Python

我有一個矩陣(6x2),我想保存每個第二行到一個新的矩陣(3x2)。

M = numpy.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]) 
SM = [] 
for i in M(0,len(M),2): 
    append.SM(i) 

這可能嗎?或者我必須先分割每一列?然後 SM應該看起來像:

SM = [[3,4],[7,8],[11,12]] 

到目前爲止,我只找到如何做到這一點與單個列向量,這樣做沒有幫助,因爲我根本不使用到Python。 在此先感謝您的幫助。

回答

2

你可以用切片:

res = M[1::2,:] 

print(res) 
array([[ 3, 4], 
     [ 7, 8], 
     [11, 12]]) 

第一片1::2手段從位置1開始,直到步驟2結束。第二個片段:選擇該級別的所有元素,即行。

如果您需要在最後名單,你可以轉換restolist方法列出:

print(res.tolist()) 
[[3, 4], [7, 8], [11, 12]] 

有關切,你可以在docs

發現一些更多的信息,或爲@ lambo477的建議你可以使用的評論:

M[1::2] 

這將給出相同的結果

+0

請注意,您可以使用'M [1 :: 2]' – gtlambert

+0

@ lambo477是的,您是對的,謝謝 –

+0

非常感謝。那就是訣竅。 – Muffin

相關問題