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
你可以转置在相同的轴和重塑回到原来的:
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]])
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。