今天在网上搜寻了许多博客,始终没有真正理解numpy中的transpose()函数, transpose 的原理其实是根据维度(shape)索引决定的,举个栗子:
我们生成了一个维度为二维数组,其中有两个索引值(矩阵的行与列)。 transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置:
我们可以直观的看到,数组的行列索引值对换,1的位置从x(0,1)跑到了x(1,0)。 那么三维数组呢? 我们继续生成一个三维的数组:
我们从高中数学知道三维由x轴、y轴以及z轴组成。 假设三维数组当中的索引值为x,y,z transpose()函数的作用就是调换x,y,z的位置,也就是数组的索引值。 所以我们正常的数组索引值为(0,1,2),等于(x,y,z) 我们来看实例代码:
通过transpose()函数改变了x的索引值为(1,0,2),对应(y,x,z) 索引改变后原本y的值和x的值对换了。 有上面代码的数字7为例,原本的7的位置索引为(1,0,1),通过transpose(x,(1,0,2))索引改变为(0,1,1) 无论四维、五维……都可以用这个原理分析。 懂了吧?原理其实很简单对不对! |
|
来自: LibraryPKU > 《科学计算》