Numpy之数组转置和轴对换

最近在学习Numpy,看到数组转置和轴对换这里,有些不太理解,分享一些自己思考的思路

先上代码,看下现象

import numpy as np
tarr = np.arange(24).reshape((2,3,4))
tarr

结果如图:


tarr
transpose(0,2,1)
transpose(0,2,1)
transpose(1,0,2)
transpose(1,0,2)
transpose(2,1,0)
transpose(2,1,0)
transpose(2,0,1)
transpose(2,0,1)

思路分析

如上现象,只是交换两个轴的转置还是简单的,毕竟矩阵的转置大家都学习过,这是二维层面的,但如果是三个轴打乱交换,此时较为难以想象,不妨就看成两次两个轴的交换

首先,我们需要明白下,上述矩阵中,三个轴分别在哪里


这是原始数据

图中红圈圈出的就是0轴的两个元素


0轴

图中紫圈圈出的就是1轴的三个元素


1轴

图中绿圈和黄圈圈出的就分别是2轴的第一个和第四个元素


2轴
  • 0轴即是最外层列表中的两个并列元素
  • 1轴即是同处于次外层列表中的三个并列元素
  • 2轴即是在最内层列表中的四个并列元素

实践验证

明白了这个之后,我们看下例子,其实就好理解多了:
transpose(2,0,1) = transpose(2,1,0) -> transpose(2,0,1)
tarr:


image.png

transpose(2,1,0) :


transpose(2,1,0)

transpose(2,0,1):


transpose(2,0,1)

总结

从结果来看,思路应该是正确的,不过我是有点搞不明白4维数组好怎么搞了,但是我认为降维思考之后,应该是一致的。有不对之处,还望看官指正,谢谢。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 语言学习的基本原理就是三条:第一模仿,第二对比,第三重复。 模仿,是在输入层面应当准确的记住教材或者是地道的语言。...
    Metisfess阅读 3,462评论 0 2
  • 彭小六“梦想领读会”作业·10分钟快速学习视觉笔记——入门心法 作者:莫言言 家好,我是莫言言,最近陆陆续续有很多...
    BigQ个人成长阅读 9,717评论 0 51

友情链接更多精彩内容