开发者社区> 问答> 正文

如何撤消一个转置

A = np.arange(36).reshape(6,6)
B = A.reshape(-1,3,2,3)
C = B.transpose(0,2,1,3)

我有一个矩阵a,它是这样的

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]
 [24 25 26 27 28 29]
 [30 31 32 33 34 35]]

把它转化成C,就像这样

[[[[ 0  1  2]
   [ 6  7  8]
   [12 13 14]]

  [[ 3  4  5]
   [ 9 10 11]
   [15 16 17]]]


 [[[18 19 20]
   [24 25 26]
   [30 31 32]]

  [[21 22 23]
   [27 28 29]
   [33 34 35]]]]

如何将C变换回A?我尝试过按照这个指南https://stackoverflow.com/a/32034565/5131031,但是没有成功。 问题来源StackOverflow 地址:/questions/59383896/numpy-how-to-undo-a-transpose

展开
收起
kun坤 2019-12-26 15:49:41 499 0
1 条回答
写回答
取消 提交回答
  • 你可以转置在相同的轴和重塑回到原来的:

    import numpy as np
    
    A = np.arange(36).reshape(6,6)
    B = A.reshape(-1,3,2,3)
    C = B.transpose(0,2,1,3)
    
    C.transpose(0,2,1,3).reshape(6,6)
    

    结果:

    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],
           [24, 25, 26, 27, 28, 29],
           [30, 31, 32, 33, 34, 35]])
    
    2019-12-26 15:49:48
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载