1.什么叫轴?
轴就是NumPy中的维度,比如二维数组中的行和列,三维数组中的的块、行、列,所指的就是维度
轴也是有编号的,从零开始,在转置时,就是使用轴的编号就行转置
轴的个数叫做秩,一个轴有几个元素,就代表有多长,也就是轴的数值
2.什么叫转置
转置就是将数组中的每个元素按照规则进行位置的变换,也可以理解为把每个轴换一下位置
3.转置
3.1简单转置:像二位数组,只有两个轴,再怎么转置也只是两个轴进行位置交换,所以,直接使用T就可以了,例如:
import numpy as np
arr = np.arange(12).reshape(3,4)
print(arr)
print(arr.T)
运行结果如下:
我们可以看到就是将数组进行了旋转,变成了四行三列。二维数组的比较好理解
3.2transpose()方法进行转置
这个主要用在二维数组以上的数组了,因为T很难满足现在的需求了,下面以三维数组为例:
import numpy as np
arr = np.arange(16).reshape((2,2,4))
print(arr)
我们上边说了,轴是有编号的,从零开始,所以我们现在创建的三维数组的轴有三个,编号为:0,1,2
所以在此时,编号0对应的就是2,编号1对应的就是2,编号2对应的就是4
print('================================')
print(arr.transpose(1,2,0))
这行代码中,transpose里填的参数就是轴的编号,原本数组中轴的编号应该是0,1,2 现在我们进行转置,变为1,2,0
那么的出来的数组就是下面的样子
我们可以看到,数组由上边的样子变成了下边的样子,那么是怎么转置的呢?
简单的看,数组是从两块两行四列变成了两块四行两列,但是其中的元素是怎么变换的呢?
在例子中,这个三维数组中有两个二维数组,我们称之为二维1和二维2,那么二维数组中又有两个一维数组,就是相当于拆开再组合
将相同位置的一维数组中的元素组合成一行,第二个二维数组也是一样,那么我们这个例子就变成了我们想要的两块四行四列
3.3swapaxes()
在一些情况下,我们可能只需要对其中的两个轴进行转置,例子如下:
import numpy as np
arr = np.arange(16).reshape((2,2,4))
print(arr)
print(arr.swapaxes(1,0))
这里我们填了1和0,这里也是指的轴的编号,所以我们在这里就是将这个三维数组中的块和行进行转置,还是和我们上边说的类似,将对应的元素进行组合,就得到了我们下图的结果: