首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3Dnumpy数组是如何变换的

3Dnumpy数组是如何变换的
EN

Stack Overflow用户
提问于 2020-04-09 10:24:28
回答 1查看 69关注 0票数 2

我在这个课间学习Numpy :-D,今天我遇到了转置。我可以很好地理解2D矩阵的转置,但很难理解3D矩阵(数组)的转置。有人能在下面的片段中解释一下a4是如何受到.transpose()的影响的吗?当然,我可以在这里找到一个模式,但我想知道转置背后的一般原理,以便我能够将其应用于任何维度的矩阵。任何帮助都是非常感谢的。

代码语言:javascript
复制
In [84]: a4 = np.random.randint(12,size=(3,2,3))
         a4
         array([[[ 2, 10,  8],
                 [ 1,  4,  9]],

                [[ 9, 10,  2],
                 [10,  5,  9]],

                [[ 0,  5,  2],
                 [ 6,  8,  2]]])

In [85]: a4.T
         array([[[ 2,  9,  0],
                 [ 1, 10,  6]],

                [[10, 10,  5],
                 [ 4,  5,  8]],

                [[ 8,  2,  2],
                 [ 9,  9,  2]]])
EN

回答 1

Stack Overflow用户

发布于 2020-04-09 10:51:00

帮助我思考转置的是意识到形状数组在转置时会像镜像操作一样被翻转。如下所示:

代码语言:javascript
复制
a2 = np.random.randint(12,size=(3,2))
print('{} <=> {}'.format(a2.shape, a2.T.shape))

a3 = np.random.randint(12,size=(3,2,4))
print('{} <=> {}'.format(a3.shape, a3.T.shape))

a4 = np.random.randint(12,size=(3,2,4,5))
print('{} <=> {}'.format(a4.shape, a4.T.shape)) 

结果:

代码语言:javascript
复制
(3, 2) <=> (2, 3)
(3, 2, 4) <=> (4, 2, 3)
(3, 2, 4, 5) <=> (5, 4, 2, 3)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61112988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档