共计 688 个字符,预计需要花费 2 分钟才能阅读完成。
写在前面
接我的上一篇博客,嘿嘿, 应该能看懂吧,如果 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…
正文完