Numpy中数组转置和轴对换——transpose、T、swapaxes

以多维数组为例,如:(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博文。

猜你喜欢

转载自blog.csdn.net/weixin_41512727/article/details/79599056
今日推荐