这里写目录标题
一、transpose的用法
用法:
arr.transpose(x,y,z)中的 (x,y,z)相当于三维坐标,默认情况下为(0,1,2),
import numpy as np
arr = np.arange(16).reshape(2,2,4) #创建一个2*2*4的三维数组
arr数组
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
np.shape(arr) #arr的维度
arr的维度
(2, 2, 4)
arr.transpose(1,2,0)
表示进行如下的变换:(x,y,z)–>(y,z,x),有两层含义;
首先是维度进行变化:
(2,2,4)–>(2,4,2),由 2 * 2 * 4变为2 * 4 * 2
然后是各元素的坐标发生变化:
例如:元素7的坐标为(0,1,3),现在变化为(1,3,0)
brr = arr.transpose(1,2,0)
brr数组
array([[[ 0, 8],
[ 1, 9],
[ 2, 10],
[ 3, 11]],
[[ 4, 12],
[ 5, 13],
[ 6, 14],
[ 7, 15]]])
np.shape(brr)
brr的维度:
(2, 4, 2)
二、swapaxes的用法
用法:
swapaxes(x,y) 有两个参数,原理与transpose相同:
若(x,y)为(0,1),表示z不变,被省略;
若(x,y)为(0,2),表示y不变,被省略;
若(x,y)为(1,2),表示x不变,被省略。
arr数组
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
arr.swapaxes(1,0):表示 x 和 y 进行交换。
同样有两层含义;
首先是维度进行变化:(第一个2和第二个2交换,形状不发生变化)
(2,2,4)–>(2,2,4),由 2 * 2 * 4变为2 * 2 * 4
然后是各元素的坐标发生变化:
例如:元素7的坐标为(0,1,3),现在变化为(1,0,3)
arr.swapaxes(1,0)
arr数组变为
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])