ndarray数组的转置(transpose)和轴对换
转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制操作)。
转置有三种方式,transpose方法、T属性以及swapaxes方法。
1 .T
import numpy as np
arr = np.arange(9).reshape((3,3))#生成一个3行3列的数组
print arr
[[0 1 2]
[3 4 5]
[6 7 8]]
print arr.T
[[0 3 6]
[1 4 7]
[2 5 8]]
2. transpose
对于高维数组,transpose需要用到一个由轴编号组成的元组,才能进行转置。
比如说三维的数组,那就对维度进行编号,也就是0,1,2。这里的0,1,2可以理解为对shape返回元组的索引。
比如
arr1 = np.arange(24).reshape(2,3,4)#生成一个2*3*4的数组
print arr1
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
print arr1.shape #看形状
(2, 3, 4) #说明这是一个2*3*4的数组(矩阵),返回的是一个元组,可以对元组进行索引,也就是0,1,2
transpose((1,0,2)) 的意义在于将 (2, 3, 4) 转成 (3, 2, 4) ,比如,数值12开始的索引是 [1,0,0] ,变换后变成了 [0,1,0] ,如下图:

print arr1.transpose((1,0,2))
[[[ 0 1 2 3]
[12 13 14 15]]
[[ 4 5 6 7]
[16 17 18 19]]
[[ 8 9 10 11]
[20 21 22 23]]]
3.swapaxes
swapaxes,它接受一对轴编号。进行轴对换。
arr1 = np.arange(24).reshape(2,3,4)
print arr1
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
print arr1.swapaxes(1,0) #将第一个轴和第二个轴交换,对比transpose(1,0,2)
[[[ 0 1 2 3]
[12 13 14 15]]
[[ 4 5 6 7]
[16 17 18 19]]
[[ 8 9 10 11]
[20 21 22 23]]]
本文介绍了NumPy中数组的转置方法,包括T属性、transpose函数及swapaxes方法,并通过实例展示了这些方法如何应用于一维、二维及三维数组。
2549

被折叠的 条评论
为什么被折叠?



