NumPy---numpy.transpose对三维数组的转置

import numpy as np

三维数组

arr1 = np.arange(16).reshape((2, 2, 4))
#[[[ 0  1  2  3]
#  [ 4  5  6  7]]
 
#  [[ 8  9 10 11]
#  [12 13 14 15]]]
 
arr2=arr1.transpose((1,0,2))
#[[[ 0  1  2  3]
#  [ 8  9 10 11]]
#
# [[ 4  5  6  7]
#  [12 13 14 15]]]

正序为(0,1,2),数组为

#[[[ 0  1  2  3]
# [ 4  5  6  7]]

#[[ 8  9 10 11]
#[12 13 14 15]]] 

tanspose(1,0,2),数组变为

#[[[ 0  1  2  3]
#[ 8  9 10 11]]

# [[ 4  5  6  7]
#  [12 13 14 15]]]

可以看到转置后的数组和转置前的数组的区别就是第一页的第二行和第二页的第一行对换了。
索引与对应值的变换
在这里插入图片描述

arr3=arr1.transpose((0,2,1))
 
# [[[ 0  4]
#  [ 1  5]
#  [ 2  6]
#  [ 3  7]]
#
#  [[ 8 12]
#  [ 9 13]
#  [10 14]
#  [11 15]]]
 
arr4=arr1.transpose((2,0,1))
#[[[ 0  4]
#  [ 8 12]]
#
# [[ 1  5]
#  [ 9 13]]
#
# [[ 2  6]
#  [10 14]]
#
# [[ 3  7]
#  [11 15]]]

这里要注意的是,arr4数组变成4页,这是因为页码和行码对换之后,

页码从数量2,变成了4

而行码从数量4,变成了2

arr5=arr1.transpose((2,1,0))
#[[[ 0  8]
#  [ 4 12]]
#
# [[ 1  9]
#  [ 5 13]]
#
# [[ 2 10]
#  [ 6 14]]
#
# [[ 3 11]
#  [ 7 15]]]
 
arr6=arr1.transpose((1,2,0))
#[[[ 0  8]
#  [ 1  9]
#  [ 2 10]
#  [ 3 11]]
#
# [[ 4 12]
#  [ 5 13]
#  [ 6 14]
#  [ 7 15]]]

另外,转置(2,0,1)可以看成,先转置(0,2,1)再转置(1,0,2)

转置(2,1,0)可以看成,先转置(1,0,2),然后转置(0,2,1),最后转置(1,0,2)

转置(1,2,0)可以看成,先转置(1,0,2),在转置(0,2,1)

代码可以写成

python arr4=arr1.transpose(0,2,1).transpose(1,0,2) #[[[ 0 4] # [ 8 12]] # # [[ 1 5] # [ 9 13]] # # [[ 2 6] # [10 14]] # # [[ 3 7] # [11 15]]]

结果一样

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值