transpose函数
numpy.transpose (arr, axes)
transpose: 反转或排列数组的轴; 返回修改后的数组;对于具有两个轴的数组a,transpose(a)给出矩阵转置.
参数
arr:要操作的数组
axes(可选):整数或列表(如果指定参数,则它必须是包含所有索引的重排列; 如果不指定,则默认为反转索引的顺序)
创建一个二维数组
import numpy as np
data = np.arange(8).reshape(2,4)
print("输入数组:")
print(data)
print("数组维度:")
print(np.shape(data))
输出结果如下:
输入数组:
[[0 1 2 3]
[4 5 6 7]]
数组维度:
(2, 4)
未指定axes,输出为矩阵的转置
二维数组正常的索引值为 (0, 1)(也就是行和列),未指定axes时,transpose()函数的作用是反转两个索引的顺序,也就是调换行和列,返回矩阵的转置
data_T = np.transpose(data)
print("转置数组:")
print(data_T)
print("数组维度:", np.shape(data_T))
输出结果如下:
转置数组:
[[0 4]
[1 5]
[2 6]
[3 7]]
数组维度:
(4, 2)
二维data的索引由(0, 1)变成(1, 0),即:交换索引0和索引1的顺序,数组维度(2, 4)变成(4, 2)
指定axes=(0, 1)
没有改变索引,数组不变
data_T = np.transpose(data, (0, 1))
print("转置数组:")
print(data_T)
print("数组维度:")
print(np.shape(data_T))
输出结果如下:
输出数组:
[[0 1 2 3]
[4 5 6 7]]
数组维度:
(2, 4)
指定axes=(1, 0)
二维data的索引由(0, 1)变成(1, 0),即:交换索引0和索引1的顺序,数组维度(2, 4)变成(4, 2)
data_T = np.transpose(data, (1, 0))
print("转置数组:")
print(data_T)
print("数组维度:")
print(np.shape(data_T))
输出结果如下:
转置数组:
[[0 4]
[1 5]
[2 6]
[3 7]]
数组维度:
(4, 2)
对于一个三维数组
import numpy as np
data = np.arange(18).reshape(1, 3, 6)
print("输入数组:")
print(data)
print("数组维度:")
print(np.shape(data))
print('\n')
输出结果如下:
输入数组:
[[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]]]
数组维度:
(1, 3, 6)
数组的转置
三维数组的正常索引是(0, 1, 2),transpose(data)
反转索引的顺序,变成(2, 1, 0);可以通过指定axes=(2, 1, 0)达到同样的效果
data_T = np.transpose(data)
print("输出数组:")
print(data_T)
print("数组维度:")
print(np.shape(data_T))
输出结果如下:
输出数组:
[[[ 0]
[ 6]
[12]]
[[ 1]
[ 7]
[13]]
[[ 2]
[ 8]
[14]]
[[ 3]
[ 9]
[15]]
[[ 4]
[10]
[16]]
[[ 5]
[11]
[17]]]
数组维度:
(6, 3, 1)
指定axes=(2, 1, 0)
data_T = np.transpose(data, (2, 1, 0))
print("输出数组:")
print(data_T)
print("数组维度:")
print(np.shape(data_T))
输出结果如下:
输出数组:
[[[ 0]
[ 6]
[12]]
[[ 1]
[ 7]
[13]]
[[ 2]
[ 8]
[14]]
[[ 3]
[ 9]
[15]]
[[ 4]
[10]
[16]]
[[ 5]
[11]
[17]]]
数组维度:
(6, 3, 1)
指定axes=(1, 2, 0)
将三维数组的索引(0, 1, 2)变成(1, 2, 0),数组维度由(1, 3, 6)变成(3, 6, 1)
data_T = np.transpose(data, (1, 2, 0))
print("输出数组:")
print(data_T)
print("数组维度:")
print(np.shape(data_T))
输出结果如下:
输出数组:
[[[ 0]
[ 1]
[ 2]
[ 3]
[ 4]
[ 5]]
[[ 6]
[ 7]
[ 8]
[ 9]
[10]
[11]]
[[12]
[13]
[14]
[15]
[16]
[17]]]
数组维度:
(3, 6, 1)
版权声明:本文为qq_37938965原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。