接个人上一篇博客, 嘿嘿, 应该能看懂吧,若是numpy数组的维度懂了那就好理解transpose
了python
transpose
就是转置的意思,函数返回按你指定的方式转置的矩阵编程
np.transpose(narray, axis=None)
举个例子感性理解一下:segmentfault
>>> 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]]
你可能会为我为啥不是:spa
[[1], [2]]
这样的话,又凭空增长了一个维度,(最后一维应该是常数那一维)
因此,若是是a.transpose(1, 0, 2)
则是:.net
array([[[1], [3], [5]], [[2], [4], [6]]])
给两个图本身理解:
可能比较难想,技巧的话code
array.shape
也行,原来是(3, 2, 1)
,若执行a.transpose(1, 0, 2)
,则shape
为(2, 3, 1)