我是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。 在此先感谢您的帮助。
答案 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]
哪个会得到相同的结果