写在前面
接我的上一篇博客, 嘿嘿, 应该能看懂吧,如果numpy数组的维度懂了那就好理解transpose
了
代码说话
transpose
就是转置的意思,函数返回按你指定的方式转置的矩阵
np.transpose(narray, axis=None)
举个例子感性理解一下:
>>> a = np.array([[[1], [2]], [[3], [4]], [[5], [6]]])
array([[[1],
[2]],
[[3],
[4]],
[[5],
[6]]])
>>> a.transpose(0, 1, 2) # 此处用面向对象编程也可以
array([[[1],
[2]],
[[3],
[4]],
[[5],
[6]]])
>>> a.transpose(0, 2, 1)
array([[[1, 2]],
[[3, 4]],
[[5, 6]]])
你可能已经明白了,他按照axis
参数——你给定的顺序类进行转置a.transpose(0, 2, 1)
就是将第二维和第三维转置
将
[[1]
[2]]
转置为:
[[1, 2]]
你可能会为我为啥不是:
[[1], [2]]
这样的话,又凭空增加了一个维度,(最后一维应该是常数那一维)
所以,如果是a.transpose(1, 0, 2)
则是:
array([[[1],
[3],
[5]],
[[2],
[4],
[6]]])
技巧
给两个图自己理解:
可能比较难想,技巧的话
- 正视,你 要交换的那两维组成的平面(目光与该平面垂直),接着,将该平面转置,另一维度不变
- 看
array.shape
也行,原来是(3, 2, 1)
,若执行a.transpose(1, 0, 2)
,则shape
为(2, 3, 1)
可以参考:https://blog.csdn.net/Heartho...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。