numpy transpose函数,python transpose函数
今天在网上搜了很多博客,但一直没有真正理解numpy中的transpose()函数。
转置的原理其实是根据维度(形状)指标来确定的。举个栗子的例子:
X=NP。阿兰格。reshape ((2,2))//生成一个2x2的数组print(x)[[0 1] [2 3]]我们生成了一个二维数组,有两个索引值(矩阵的行和列)。
transpose()的作用是调换数组的行列值的索引值,类似于求矩阵的转置:
X=NP。阿兰格。整形((2,2)) x=NP。TRANSPOSE (x) PRINT (x) [[02] [13]]我们可以直观地看到,数组的行列索引值互换,1的位置从x(0,1)运行到x(1,0)。
三维数组呢?
我们继续生成一个三维数组:
X=NP。阿兰格(12)。reshape ((2,2,3))//生成一个2x2x3的数组print(X)[[0 12][3 45]][[6 78][9 10 11]]]我们从高中数学中知道,三维是由X轴、Y轴和Z轴组成的。
假设三维数组中的索引值是x,y,z。
transpose()函数用来转置x,y,z的位置,也就是数组的索引值。
所以我们正常的数组索引值是(0,1,2),等于(x,y,z)
让我们看看示例代码:
x=np.arange(12)。reshape((2,2,3))print(x)[[[0 1 2][3 4 5]][[6 7 8][9 10 11]]]x=NP . transpose(x,(1,0,2)//transpose()函数的第二个参数是索引值改变的地方。print(x)[[012][678]][[345][91011]]通过transpose()函数将x的索引值改为(1,0,2),对应(y,y)。
索引改变后,Y的原始值和X的值交换。
以上面代码的数字7为例。7原来的位置索引是(1,0,1),通过转置(x,(1,0,2))的索引改为(0,1,1)。
不管是四维还是五维.可以用这个原理来分析。
明白了吗?其实原理很简单吧?
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。