深入浅出transpose矩阵行列互换

今天有学生过来和我聊天,谈到了高维数组坐标(行列)数据交换问题:
接下来简单聊聊我比较钟情的transpose方法,此贴不作为教学资料,仅作为个人使用心得,如对您带来帮助,不胜荣幸!!!

transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行与列相互调换位置;

例如:随机生成一个三行五列的二维矩阵:

arr = np.arange(15).reshape((3, 5))   
arr       
array([[ 0,  1,  2,  3,  4],          
           [ 5,  6,  7,  8,  9],   
           [10, 11, 12, 13, 14]])

>> arr.T
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],  
       [ 3,  8, 13], 
       [ 4,  9, 14]])

transpose(X,Y)函数和矩阵的转置是一个意思,相当于行为X轴,列为Y轴,X轴和Y轴调换了位置;

X轴用0表示,Y轴用1表示;
例如:如果transport(1,0)表示行与列调换了位置;

>> arr.transpose(1, 0)    
  array([[ 0,  5, 10],        
            [ 1,  6, 11],         
            [ 2,  7, 12],      
            [ 3,  8, 13],        
            [ 4,  9, 14]])

三维张量的transpose函数:

三维张量顾名思义,它有三个维度;相当于有X轴,Y轴,Z轴;三个轴之间的相互转换;
同样,X轴用0表示,Y轴用1表示;Z轴用2来表示;

# 构建三维数据
arr = np.arange(24).reshape((2, 3, 4))  
arr   
array([[[ 0,  1,  2,  3],         
            [ 4,  5,  6,  7],         
            [ 8,  9, 10, 11]],         
           [[12, 13, 14, 15],        
            [16, 17, 18, 19],        
            [20, 21, 22, 23]]])


网上扒了一张示意图,凑合看吧:
在这里插入图片描述

transpose(1,0,2)表示X轴与Y轴发生变换;
transport(0,2,1):表示Y轴与Z轴发生轴变换;
transport(2,1,0):表示X轴与Z轴发生轴变换;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值