ndarray的转置(numpy.transpose()与A.T命令对比详解)

14 篇文章 2 订阅
8 篇文章 0 订阅

ndarray的转置(transpose)

对于A是由np.ndarray表示的情况:
可以直接使用命令A.T
也可以使用命令A.transpose()

A.T 与 A.transpose()对比

结论:

在默认情况下,两者效果相同,但transpose()可以指定交换的axis维度。
对于一维数组,两者均不改变,返回原数组。
对于二维数组,默认进行标准的转置操作。
对于多维数组A,A.shape(a,b,c,d,...,n),则转置后的shape(n,...,d,c,b,a),即逆序。
对于.transpose(),可以指定转置后的维度。语法:A.transpose((axisOrder1,...,axisOrderN)),其效果等同于np.transpose(A,(axisOrder1,...,axisOrderN)),(axisOrder)中是想要得到的索引下标顺序。效果详见例子。

Example:

二维默认情况下:
A = np.array([[1,2],[3,4]])
print(A)
print(A.T)
print(A.transpose())

结果如下:
Example1

多维默认情况下:
a = np.array([[[1,2,3,4],[4,5,6,7]],[[2,3,4,5],[5,6,7,8]],[[3,4,5,6],[4,5,6,7]]])
print(a.shape)
print(a.T.shape)
print(a.transpose().shape)

结果如下:
Example2

指定维度情况:
a = np.array([[[1,2,3,4],[4,5,6,7]],[[2,3,4,5],[5,6,7,8]],[[3,4,5,6],[4,5,6,7]]])
print(a.shape)
print(a.transpose(1,2,0).shape)
A = np.transpose(a,(1,2,0))
print(A.shape)

结果如下:
Example3

从截图中可以看出,a.transpose(1,2,0)np.transpose(a,(1,2,0))效果相同。代码段中给出的axes(1,2,0),这决定了transpose后的数组,其shape在第一个维度即shape[0]上是原来的shape[1],第二维shape[1]是原来的shape[2],第三维shape[2]是原来的shape[0]。所以原shape(3,2,4)。新的shape为(2,4,3)


如果觉得文章对您有帮助的话,可以点个赞,是对博主最大的肯定!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值