Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从4X4矩阵中分割出2X2矩阵?_Python_Arrays_Matrix_Ellipsis - Fatal编程技术网

在python中从4X4矩阵中分割出2X2矩阵?

在python中从4X4矩阵中分割出2X2矩阵?,python,arrays,matrix,ellipsis,Python,Arrays,Matrix,Ellipsis,我正在阅读python3中介绍的省略号的使用 考虑一下这个矩阵: A=[ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ] 我想从中提取各种2 X 2矩阵,如果可能,最好使用切片表示法: 例如: 左上角: B=[ [1,2], [3,4] ] 右下角: c=[ [[9,10], [13,14] ] 中间2 X 2: d=[ [6,7], [10,11] ]

我正在阅读
python3
中介绍的
省略号的使用

考虑一下这个矩阵:

A=[
   [1,2,3,4],
   [5,6,7,8],
   [9,10,11,12],
   [13,14,15,16]
  ]
我想从中提取各种2 X 2矩阵,如果可能,最好使用切片表示法:

例如:

左上角:

B=[
  [1,2],
  [3,4]
  ]
右下角:

c=[
  [[9,10],
   [13,14]
  ]
中间2 X 2:

 d=[
    [6,7],
    [10,11]
    ]
如果可能的话,我想在不使用迭代的情况下尝试一下。
省略号
有助于分解这个高阶数组吗

我尝试了以下方法:

>>> a[:2][:2]
[[1, 2, 3, 4], [5, 6, 7, 8]]
>>> a[:2][:2][:2]
[[1, 2, 3, 4], [5, 6, 7, 8]]
>>> 

不知何故,最后两个调用返回的是同一个子矩阵,这不是我所寻找的

您可能需要列表理解

左上角:

[x[:2] for x in a[:2]]
右上角:

[x[2:] for x in a[:2]]
中间:

[x[1:3] for x in a[1:3]] or [x[1:3] for x in a[2:4]]
基本上,您想要做的是切掉您不想要的行(这就是
a[k:l]
中的
x
正在做的),然后用
x[m:n]
切掉可能重复的列