程序员

Numpy之数组转置和轴对换

2018-11-22  本文已影响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轴

实践验证

明白了这个之后,我们看下例子,其实就好理解多了:
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维数组好怎么搞了,但是我认为降维思考之后,应该是一致的。有不对之处,还望看官指正,谢谢。

上一篇下一篇

猜你喜欢

热点阅读