numpy.transpose用于生成镜像

时间:2018-06-18 01:05:52

标签: python-2.7 numpy

我熟悉用于交换轴的numpy.transpose命令。但我不熟悉镜像,它们是什么以及如何使用numpy.transpose命令生成镜像。以下链接说明当我们交换最后两个轴时,我们得到镜像。那么这里的镜像是什么意思。如果有人请用一些图片解释这个,我将非常感激

`a= np.arange(2*2*4).reshape(2,2,4)
b= np.transpose(a,(1,0,2))`

请查看https://imgur.com/gallery/v6z7ah0

https://www.reddit.com/r/learnpython/comments/734lcl/complicated_numpy_transpose_question/?st=jij0av7a&sh=754dfd45

1 个答案:

答案 0 :(得分:2)

In [54]: a= np.arange(2*3*4).reshape(3,2,4)
#                                    | | |
# axes                               0 1 2

# new shape by moving the axes
In [54]: b= np.transpose(a,(1,0,2))

In [55]: a.shape
Out[55]: (3, 2, 4)

# first two axes are swapped
In [56]: b.shape
Out[56]: (2, 3, 4)

默认情况下,np.transpose()会反转形状。但是,当将参数传递给np.transpose()时,如果可能,数组将被重新整形为所请求的形状。

说明:

在上面的示例中,np.transpose(a, (1, 0, 2))表示在返回的数组b中,将交换第0和第1轴。

具体来说,传递给np.transpose()的元组是我们希望结果数组具有形状的顺序。

在转置前(左)和转置后(右)绘制图像:

transposed result