【数据挖掘重要笔记day19】详解numpy中的transpose函数,针对一维数组、二维数组、三维数组、四维五维。。。的转置

transpose的原理是根据维度shape索引决定的

二维数组

生成一个2*2的数组

arr = np.arange(4).reshape((2,2))
arr

在这里插入图片描述
我们生成了一个维度为2的二维数组,其中有两个索引值:矩阵的行和列

transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置

arr.transpose()

在这里插入图片描述
我们可以直观的看到,数组的行列索引值对换,1的位置从arr(0,1)跑到了arr(1,0)

三维数组

我们继续生成一个三维数组

x = np.arange(12).reshape((2,2,3))
x

在这里插入图片描述
我们由高中数学知道
三维是由x,y,z轴组成的
假设三维数组中的索引值为x,y,z
transpose()函数的作用就是调换x,y,z轴的位置,也就是数组的索引值
所以我们正常的三维数组的索引值为(0,1,2)相当于(x,y,z)
刚刚的三维数组是
在这里插入图片描述
我们使用reanspose函数

x = np.transpose(x,(1,0,2))
x

就相当于原来x轴的值和y轴的值进行了对换
在这里插入图片描述
那为什么结果是这样的呢
举个例子
按原来的x
在这里插入图片描述
数字5 的索引是多少?

x[0,1,2]

接下来使用了transpose函数将三维的(0,1,2)变为(1,0,2)
因此数字5的索引也变了由x[0,1,2]变为x[1,0,2]
而x[1,0,2]是数字8
所以数字8和数字5的位置变了

综上无论四维,五维。。。都可以以这个思路分析
是不是很简单?

发布了496 篇原创文章 · 获赞 563 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104343145