如何在python中打印子矩阵?

时间:2017-10-18 00:41:49

标签: python arrays numpy matrix

在python中是否有任何简短的方法来打印更大矩阵的子矩阵,这样不使用for循环?

matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]

sub1 = matrix[1:2][1:2] 
>>>desired answer: [[6,7][10,11]]
1   2  3   4
5  *6  7*  8 
9  *10 11* 12
13  14  15 16 

sub2 = matrix[2][1:3] 
>>>desired answer: [[7,11,15]]
1   2  3  4
5   6  *7* 8 
9  10 *11* 12
13 14 *15* 16 

额外:对于后一个例子,如何以反向格式返回它而不使用reverse()?即:[15,11,7][16,15,14]

1 个答案:

答案 0 :(得分:2)

对于列表列表,您可以获得所需的结果:

>>> [s[1:3] for s in matrix[1:3]]
[[6, 7], [10, 11]]
>>>
>>> [s[2:3] for s in matrix[1:4]]
[[7], [11], [15]]
>>> 

请注意,后者是一个垂直切片,因此每个元素都包含在自己的列表中。另请注意,这是Python索引,因此范围说明符中的第二个限制比切片中的最后一个索引高一个。