转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)。数组不仅有transpose方法,还有一个特殊的T属性:
在进行矩阵计算时,经常需要用到该操作,比如利用np.dot计算矩阵内积X.TX:(主要原因是前一个矩阵的列数必须是后一个矩阵的行数,乘积才有意义)
矩阵乘法规则:
19=1*5+2*7
22=1*6+2*8
43=3*5+4*7
50=3*6+4*8
对于高维数组,transpose需要得到一个由轴编号组成的元组才能对这些轴进行转置(比较费脑子):
先创建一个3维数组,然后对坐标轴进行转置。
转置参数为2,0,1,原数组arr1的维度参数为4,2,2分别对应索引0,1,2,转置后维度参数则为2、4、2,即4,2,2-->2,4,2:
由此可以看到原索引0轴与索引2轴发生了对换,在三维下,每个元素由3个索引构成,如arr1中10的位置为(2,1,0),转置后为(0,2,1)