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

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

文章目录

  • 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

【数据挖掘重要笔记day19】详解numpy中的transpose函数,针对一维数组、二维数组、三维数组、四维五维。。。的转置_第1张图片
我们由高中数学知道
三维是由x,y,z轴组成的
假设三维数组中的索引值为x,y,z
transpose()函数的作用就是调换x,y,z轴的位置,也就是数组的索引值
所以我们正常的三维数组的索引值为(0,1,2)相当于(x,y,z)
刚刚的三维数组是
【数据挖掘重要笔记day19】详解numpy中的transpose函数,针对一维数组、二维数组、三维数组、四维五维。。。的转置_第2张图片
我们使用reanspose函数

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

就相当于原来x轴的值和y轴的值进行了对换
【数据挖掘重要笔记day19】详解numpy中的transpose函数,针对一维数组、二维数组、三维数组、四维五维。。。的转置_第3张图片
那为什么结果是这样的呢
举个例子
按原来的x
【数据挖掘重要笔记day19】详解numpy中的transpose函数,针对一维数组、二维数组、三维数组、四维五维。。。的转置_第4张图片
数字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的位置变了

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

你可能感兴趣的:(【数据分析与挖掘】)