访问矩阵中的每一行并将其保存到新的矩阵Python中

时间:2016-01-23 11:18:16

标签: python numpy matrix

我是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。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你可以使用切片:

res = M[1::2,:]

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

第一个切片1::2表示从位置1开始直到步骤2结束。第二个切片:选择该级别中的所有元素,即行。

如果您最后需要列表,可以使用res方法将tolist转换为列表:

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

有关切片的更多信息,请参阅docs

或者@ lambo477在评论中建议您可以使用:

M[1::2]

哪个会得到相同的结果