Python中的numpy库对数组进行操作是非常方便的,在学习到使用numpy进行数组转置时遇到了一些问题,亲自动手操作后,对这个问题算是能够理解了。
- 1 首先是使用数组对象的T属性,对数组进行转置。简单的一维和二维数组比较好理解,无非就是线性代数中的行列相互交换。对于高维数组的转置看如下具体操作:
import numpy as np
a = np.arange(12).reshape(2, 2, 3)
print(a)
创建一个三维矩阵,由2个2*3的矩阵块组成。
output:
[[[ 0 1 2]
[ 3 4 5]]
[[ 6 7 8]
[ 9 10 11]]]
其中每个元素都有其唯一的坐标(x,y,z),例如0:【0,0,0】,1:【0,0,1】。。。。11:【1,1,2】。此时对a进行转置看看结果:
print(a.T)
output:
[[[ 0 6]
[ 3 9]]
[[ 1 7]
[ 4 10]]
[[ 2 8]
[ 5 11]]]
a数组变成了3*2*2的了,再看一下各个元素的坐标可以发现0:【0,0,0】,1:【1,0,0】。。。。。11:【2,1,1】,每个元素坐标的x和相互交换了位置。其实该T操作等同于后面两种方法a.transpose(2,1,