Numpy 高维矩阵的切片与转置操作

前言

使用Numpy库时,往往会涉及到矩阵的切片操作、转置操作等。对于矩阵,我们平常使用的最多的就是一维、二维、三维矩阵。而一维、二维的情况都比较简单,这里主要讲一下高维矩阵(以三维为例)的切片与转置操作。

切片操作

首先我们来生成一个三维矩阵,并打印出来看看是个什么样子,见下图:
Numpy 高维矩阵的切片与转置操作
这里我们得到一个三维矩阵,并看到了它的输出,然而,一个关键的问题是,我们该怎么判断哪个是第一、二、三维呢?这里给出我我所理解的,如下:
Numpy 高维矩阵的切片与转置操作
明白了哪是第一维、第二维、第三维之后,对三维矩阵的切片操作就非常好理解了。具体看下面这几个例子:
Numpy 高维矩阵的切片与转置操作
Numpy 高维矩阵的切片与转置操作
需注意的是,Numpy里面矩阵任意维度的下标都是从0开始的。

转置操作

在Numpy库里,矩阵的转置可通过ndarray.transpose()ndarray.T 来实现。二维矩阵的转置很好理解,而对于三维矩阵的转置操作,只要明白了哪是第一维、第二维、第三维,也变得容易理解了。需注意的是,第一维、第二维、第三维对应的轴(axes)分别是0、1、2。下面通过几个例子来说明矩阵的转置。
先是二维矩阵的转置:
Numpy 高维矩阵的切片与转置操作
接下来的例子是三维矩阵的转置:
Numpy 高维矩阵的切片与转置操作
Numpy 高维矩阵的切片与转置操作
Numpy 高维矩阵的切片与转置操作