以多维数组为例,如:(2, 2, 4)表示 2个2X4矩阵,可以理解为(2[0], 2[1], 2[2]),其中[0]表示0轴。
import numpy as np
arr=np.arange(16).reshape(2,2,4)
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
1、transpose(1,0,2):表示将(2[0], 2[1], 2[2])转换为(2[1], 2[0], 2[2])。简单理解就是,将不同位置元素替换掉。
比如:arr[0, 0, 0],第一位和第二位转换后,仍是arr[0, 0, 0]。arr[0 , 1, 0] = 4, 转换后为 arr[1, 0, 0] = 8。同理arr[1, 0 , 0]转换为 arr[0, 1, 0]。此次类推。
arr.transpose(1,0,2)
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
2、T转置:表示整个顺序颠倒,(2[0], 2[1], 2[2])转换为(2[2], 2[1], 2[0])。相应的分析方法一样,就是内容替换。
arr.T
array([[[ 0, 8],
[ 4, 12]],
[[ 1, 9],
[ 5, 13]],
[[ 2, 10],
[ 6, 14]],
[[ 3, 11],
[ 7, 15]]])
arr.transpose(2,1,0)
array([[[ 0, 8],
[ 4, 12]],
[[ 1, 9],
[ 5, 13]],
[[ 2, 10],
[ 6, 14]],
[[ 3, 11],
[ 7, 15]]])
3、swapaxes方法:表示,将其中两个轴互换。
arr.swapaxes(1,2)
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])
arr.transpose(0,2,1)
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])
以上就是对Numpy中T、transpose、swapaxes的一点学习。主要参考学习自利用python学习数据分析和http://blog.csdn.net/qq_18989901/article/details/73142472博文。