numpy中transpose和swapaxes函数讲解

时间:2022-05-08 16:57:51

1 transpose()
这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。 我们看如下一个numpy的数组:

arr=np.arange(16).reshape((2,2,4))
arr=
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])

那么有:

arr.transpose(2,1,0)
array([[[ 0, 8],
[ 4, 12]], [[ 1, 9],
[ 5, 13]], [[ 2, 10],
[ 6, 14]], [[ 3, 11],
[ 7, 15]]])

为什么会是这样的结果呢?对于transpose(2,1,0),就是把之前的维度调序,即:第三个维度转为第一个维度,之前的第二个维度不变,之前的第一个维度变为第三个维度。

2 swapaxes()
理解了上面,再来理解swapaxes()就很简单了,swapaxes接受一对轴编号,其实这里我们叫一对维度编号更好吧,比如:

arr.swapaxes(2,1)  #就是将第三个维度和第二个维度交换
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]], [[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])

注:今天读代码的时候,碰到了swapaxes函数,然后这篇文章不错,我就摘录了过来,只是为了以后方便查阅!!!