numpy数组转置可以通过arr.T、arr.transpose()、arr.swapaxes()实现。

数组转置 arr.T

python 对象转数组 python numpy 数组转置_python 对象转数组

轴变换 arr.transpose()

ndarray.transpose()主要作用通过置换数组轴,来实现对数组的转置。

二维数组转置

python 对象转数组 python numpy 数组转置_数组_02

若不在transpose中声明轴,默认是矩阵转置效果同 arr.T

python 对象转数组 python numpy 数组转置_python 对象转数组_03

高维数组转置

高维数组的转置,比较让人费解,在看了这篇文章(Python numpy.transpose 详解)后豁然开朗

首先先理解下二维数据转置的原理:

python 对象转数组 python numpy 数组转置_数组_04

每个元素,通过下标的形式表示他们各自的值。当使用arr_two.transpose()进行转置操作时:

python 对象转数组 python numpy 数组转置_元组_05

仔细观察原数组和转置后的数组可以发现第一个下标和第二个下标互换了。

python 对象转数组 python numpy 数组转置_数组_06

原数组是 2 X 3 维数组,元组元素(2,3)的位置下标分别为0、1

转置后数组是 3 X 2 维数组,元组元素(3,2)的位置下标分别为0、1

可以看到数组的不同轴进行了位置交换。

在高维数组中:

创建高维数组

python 对象转数组 python numpy 数组转置_数组_07

高维数组转置

python 对象转数组 python numpy 数组转置_转置_08

转置过程

python 对象转数组 python numpy 数组转置_python 对象转数组_09

python 对象转数组 python numpy 数组转置_数组_10

轴变换 arr.swapaxes()

swapaxes()函数里面只需传入两个参数:First axis、Second axis

python 对象转数组 python numpy 数组转置_元组_11