美文网首页程序员
Numpy之数组转置和轴对换

Numpy之数组转置和轴对换

作者: 半亩房顶 | 来源:发表于2018-11-22 13:47 被阅读29次

    最近在学习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维数组好怎么搞了,但是我认为降维思考之后,应该是一致的。有不对之处,还望看官指正,谢谢。

    相关文章

      网友评论

        本文标题:Numpy之数组转置和轴对换

        本文链接:https://www.haomeiwen.com/subject/ttclqqtx.html