目录
1 矩阵转置T,既线性代数中矩阵转置
示例程序如下:
import numpy as np
a = np.arange(0,24,2).reshape(3, 4)
print('*****a****')
print('a: \n', a)
print('a.shape: ', a.shape)
print('\n*****a.T****')
print('a.T:\n', a.T)
print('a.T: ', a.T.shape)
运行结果
*****a****
a:
[[ 0 2 4 6]
[ 8 10 12 14]
[16 18 20 22]]
a.shape: (3, 4)
*****a.T****
a.T:
[[ 0 8 16]
[ 2 10 18]
[ 4 12 20]
[ 6 14 22]]
a.T: (4, 3)
2 transpose()函数
以维度为(2,3,4)的数组a为例进行说明:
a有3个,第0维大小为2,第1维大小为3,第2维大小为4
a.transpose(2,1,0)既将数组a第0维大小2与第2维大小4进行替换,返回第0维大小为4,第1维大小为3,第2维大小为2
示例程序如下:
import numpy as np
a = np.arange(24).reshape(2, 3, 4)
print('*****a****')
print('a: \n', a)
print('a.shape: ', a.shape)
print('\n*****a.transpose(2,1,0)****')
print('a.transpose(2,1,0):\n', a.transpose(2,1,0))
print('a.transpose(2,1,0).shape: ', a.transpose(2,1,0).shape)
运行结果:
*****a****
a:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
a.shape: (2, 3, 4)
*****a.transpose(2,1,0)****
a.transpose(2,1,0):
[[[ 0 12]
[ 4 16]
[ 8 20]]
[[ 1 13]
[ 5 17]
[ 9 21]]
[[ 2 14]
[ 6 18]
[10 22]]
[[ 3 15]
[ 7 19]
[11 23]]]
a.transpose(2,1,0).shape: (4, 3, 2)
3 swapaxes()函数
swapaxes()函数接受的参数是一对轴编号,
以维度为(2,3,4)的数组a为例进行说明:
a有3个,第0维大小为2,第1维大小为3,第2维大小为4
a. swapaxes (2,0)既将数组a第0维大小2与第2维大小4进行替换,返回第0维大小为4,第2维大小为2;第1维大小不变。
import numpy as np
a = np.arange(24).reshape(2, 3, 4)
print('*****a****')
print('a: \n', a)
print('a.shape: ', a.shape)
print('\n*****a.swapaxes (2,1,0)****')
print('a.swapaxes(2,0):\n', a.swapaxes(2,0))
print('a.swapaxes(2,0).shape: ', a.swapaxes(2,0).shape)
运行结果:
*****a****
a:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
a.shape: (2, 3, 4)
*****a.swapaxes (2,1,0)****
a.swapaxes(2,0):
[[[ 0 12]
[ 4 16]
[ 8 20]]
[[ 1 13]
[ 5 17]
[ 9 21]]
[[ 2 14]
[ 6 18]
[10 22]]
[[ 3 15]
[ 7 19]
[11 23]]]
a.swapaxes(2,0).shape: (4, 3, 2)